参考链接:https://laravel-news.com/your-first-laravel-application

简介

按照以下的步骤,你会创建一个简易的链接分享网站

安装 Laravel 安装器

composer global require "laravel/installer"

创建项目[1]

laravel new links

检查是否安装成功

访问地址:http://localhost/links/public/ 。看到欢迎页面,表示安装成功。

构建认证系统

执行命令:php artisan make:authphp artisan migrate[2]

> php artisan make:auth
Authentication scaffolding generated successfully.
> php artisan migrate
Migration table created successfully.
Migrated: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_100000_create_password_resets_table

现在系统里就有注册、登录功能了。

创建 Model & 插入伪数据

创建 Model

创建迁移文件

php artisan make:migration create_links_table --create=links

写迁移文件的 up 方法

Schema::create('links', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->string('url')->unique();
$table->text('description');
$table->timestamps();
});

执行迁移

php artisan migrate

创建 Link Model

php artisan make:model Link

ModelFactory.php 中为 Link Model 定义工厂方法

$factory->define(App\Link::class, function (Faker\Generator $faker) {
return [
'title' => $faker->name,
'url' => $faker->url,
'description' => $faker->paragraph,
];
});

创建种子文件 LinksTableSeeder

php artisan make:seeder LinksTableSeeder

在种子文件中使用工厂方法

public function run()
{
factory(App\Link::class, 10)->create();
}

DatabaseSeeder 中注册种子文件

$this->call(LinksTableSeeder::class);

执行种子文件[3]

php artisan db:seed

路由和视图

routes/web.php 中添加路由——首页、创建页和保存链接。

use App\Link;
use Illuminate\Http\Request; Route::group(['prefix' => 'links'], function () {
Route::get('', function () {
$links = Link::all();
return view('links.index', compact('links'));
});
Route::get('create', function () {
return view('links.create');
});
Route::post('store', function(Request $request) {
$validator = Validator::make($request->all(), [
'title' => 'required|max:255',
'url' => 'required|max:255',
'description' => 'nullable|max:255',
]);
if ($validator->fails()) {
return back()
->withInput()
->withErrors($validator);
}
$link = new Link();
$link->title = $request->title;
$link->url = $request->url;
$link->description = $request->description;
$link->save();
return redirect('/links');
});
});

resources/views/links 添加两个视图文件。

  1. 链接分享的首页index.blade.php
@extends('layouts.app')

@section('content')
<div class="container">
<div class="row">
<div class="col-md-8 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading"><h1>Links Sharing</h1></div> <div class="panel-body">
<div class="row">
@foreach ($links as $link)
<div class="col-sm-6 col-md-4">
<div class="thumbnail">
<div class="caption">
<h2><a href="{{ $link->url }}" target="_blank">{{ $link->title }}</a></h3>
<p>{{ $link->description }}</p>
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
  1. 创建链接页create.blade.php
@extends('layouts.app')

@section('content')
<div class="container">
<div class="row">
<h1>Submit a link</h1> @if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif <form action="{{ url('links/store') }}" method="post">
{{ csrf_field() }}
<div class="form-group">
<label for="title">标题</label>
<input type="text" class="form-control" id="title" name="title" placeholder="Title" value="{{ old('title') }}">
</div>
<div class="form-group">
<label for="url">URL</label>
<input type="text" class="form-control" id="url" name="url" placeholder="URL" value="{{ old('url') }}">
</div>
<div class="form-group">
<label for="description">介绍</label>
<textarea class="form-control" id="description" name="description" placeholder="description">{{ old('description') }}</textarea>
</div>
<button type="submit" class="btn btn-default">创建</button>
</form>
</div>
</div>
@endsection
tags: Laravel 项目

  1. 项目数据库名使用 laravel-links,采用 utf8mb4_unicode_ci 校对。修改 MySQL 配置文件 mysql.ini(Windows 环境下) 将 default-storage-engine 项设置为 InnoDB——表示新建数据库表的默认存储引擎使用 InnoDB。 ↩︎

  2. 对于 Laravel 5.3- 版本,需要修改文件 resource/views/layouts/app.blade.php。将引入的 JavaScript 和 CSS 文件的地址改为 <link href="{{ asset('css/app.css') }}" rel="stylesheet">

    <script src="{{ asset('js/app.js') }}"></script>↩︎

  3. 也可以在迁移时执行种子文件,命令是 php artisan migrate --seed↩︎

构建你人生里的第一个 Laravel 项目的更多相关文章

  1. 【简书】在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目

    在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目 作者 DonnieZero 关注 2017.07.29 22:02* 字数 2218 阅读 5556评论 3喜欢 1赞赏 1 ...

  2. 创建一个 Laravel 项目

    创建一个 Laravel 项目,首先需要安装 Composer ,如果没有安装的参考 https://docs.phpcomposer.com/00-intro.html 一.安装 Laravel 安 ...

  3. 一步一步带你构建第一个 Laravel 项目

    参考链接:https://laravel-news.com/your-first-laravel-application 简介 按照以下的步骤,你会创建一个简易的链接分享网站. 安装 Laravel ...

  4. 完成一个Laravel项目的过程

    1.分析项目,找出项目的元素并进行建模(navicat 该工具还可以到处sql语句) 建立关系 2.安装Laravel(使用composer来安装,如果没有的话先安装composer) 3.配置虚拟主 ...

  5. 新版本IntelliJ IDEA 构建maven,并用Maven创建一个web项目

    之前都没试过用maven来管理过项目,但是手动找包导包确实不方便,于是今天用2016版的IDEA进行了maven的初尝试. 打开IDEA,创建新项目: 然后选择Maven,以及选择自己电脑的jdk: ...

  6. 推荐一个 Laravel admin 后台管理插件

    如何优雅的写代码,我想是每位程序员的心声.自从15年初第一次接触 Laravel 4.2 开始,我就迷上使用 Laravel 框架了.我一直都想找个时间好好写写有关 Laravel 的使用文章,由浅入 ...

  7. 使用composer命令创建laravel项目命令详解

    composer命令创建laravel项目的命令是: composer create-project --prefer-dist laravel/laravel blog "5.2.*&qu ...

  8. 安装配置开源的laravel项目到本地环境

    前言 从https://github.com 上down了一个laravel项目安装到本地环境的时候,其中遇到一些问题,这里梳理并记录下整个流程. git上下载项目代码,部署laravel项目的时候会 ...

  9. legend3---Homestead中Laravel项目502 Bad Gateway

    legend3---Homestead中Laravel项目502 Bad Gateway 一.总结 一句话总结: 用查看错误日志的方法解决错误:(/var/log/nginx/.log) 1.home ...

随机推荐

  1. android添加权限--eclipse

    首先进入清单文件 2.点击下面的permissions----Add 3.选择Uses permission-----OK 4.选择需要的权限 5.查看代码,,已经添加完毕

  2. spdlog源码阅读 (1): sinks

    0. spdlog简单介绍 spdlog 是一个快速的 C++ 日志库,只包含头文件,兼容 C++11.项目地址 特性: 非常快 只包含头文件 无需依赖第三方库 支持跨平台 - Linux / Win ...

  3. oracle 11g centos6 安装

    选型:32位的内存是个瓶颈,已经是64位的时代了.使用64位的CentOS6 和 64位的Oracle 11g R2在虚拟机器安装,采用hostonly方式设置网络注意:能上网的网卡要设置一下ICS( ...

  4. ubuntu14.04下chrome浏览器的安装

    ubuntu 64位 1.下载chrome安装包: sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_ ...

  5. 牛顿迭代法求开根号。 a^1/2_______Xn+1=1/2*(Xn+a/Xn)

    #include <stdio.h>#include <math.h>int main(void){ double a,x1=1.0,x2; printf("plea ...

  6. Sublime Text3 编辑器我的最爱

    简介 Sublime Text 3是一个神奇的文本编辑器,适合程序员.作家.它有很多亮点功能,比如多选择.Go Anything.命令面板.多选择可以让你同时编辑多出代码,Got Anything 像 ...

  7. 不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

    在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www. ...

  8. JS调用WebService,发布到IIS,网页提示WebService未定义[已解决]

    VS2013中,JS调用WebService,一直运行正常.部署到WindowsServer2008之后,在网页中访问,始终提示网页中有错误,点开之后发现是WebService未定义. 于是上网查解决 ...

  9. 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1

    老李推荐:第3章3节<MonkeyRunner源码剖析>脚本编写示例: MonkeyImage API使用示例   在上一节的第一个“增加日记”的示例中,我们并没有看到日记是否真的增加成功 ...

  10. Git版本管理荟萃

    用惯了svn,突然转到git难免有点不适,写个笔记好好备忘总结一番. 一.先看历史(imooc上的一个图): 二.git与svn GIT跟SVN一样有自己的集中式版本库或服务器.但,GIT更倾向于被使 ...