部署
项目是直接部署在WampServer环境 版本:3.0.6 (PHP7.0+)
安装框架
使用composer
包管理器安装Laravel框架,使用的是Laravel5.4版本
1 | composer create-project laravel/laravel blog --prefer-dist |
配置Apache
1 | <VirtualHost *:80> |
添加Hosts
127.0.0.1 miniblog.com
数据库配置
创建数据库
CREATE DATABASE blog
/!40100 COLLATE ‘utf8mb4_general_ci’ /;
修改.env
文件
1 | APP_NAME=迷你博客 |
开始制作
创建控制器
1 | php artisan make:controller ArticlesController |
创建路由
打开routes
文件夹中web.php
加入以下代码:
1 | Route::resource('articles','ArticlesController'); |
只需要上面这样一行代码,就相当于创建了如下7条路由,且都是命名路由,我们可以使用类似route('articles.show')
这样的用法。
1 | Route::get('/articles', 'ArticlesController@index')->name('articles.index'); |
如果你使用的PHPStrom的自带终端或者其他终端软件,在项目文件夹下输入
1 | php artisan route:list |
可以查看到路由表所有信息。
创建注册登录
这里还是使用Laravel自带的注册登录组件,在项目下的终端输入
1 | php artisan make:auth |
验证码扩展包
Composer验证码包简介:https://packagist.org/packages/mews/captcha
也用中文验证码包:https://packagist.org/packages/kangkang66/captcha
安装
1 | composer require mews/captcha |
配置
使用Captcha服务提供者之前还需要在config/app.php中注册服务提供者:
1 | 'providers' => [ |
同时注册下相应门面:
1 | 'aliases' => [ |
如果要使用自定义的配置,还可以发布配置文件到config目录:
1 | php artisan vendor:publish |
编辑新生成的Captcha.php
重写默认登录注册验证方法
找到:app\Http\Controllers\Auth\LoginController.php
进入use AuthenticatesUsers类找到validateLogin方法,修改验证方法代码如下:
1 | protected function validateLogin(Request $request) |
同理,也可以在注册也添加上验证码:
找到app\Http\Controllers\Auth\RegisterController.php
修改验证:1
2
3
4
5
6
7
8
9
10
11
12protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'captcha'=>'required|max:5|captcha|string'
],[
'captcha.captcha'=>trans('验证码错误!'),
'captcha.required'=>trans('验证码为空!')
]);
}
对视图文件的添加
添加验证码图片+验证
1 | <div class="form-group{{ $errors->has('captcha') ? ' has-error' : '' }}"> |
创建数据表
利用 artisan 命令生成迁移:
1 | php artisan make:migration create_articles_talbe |
然后打开迁移文件:
database/migrations/XXXX_create_articles_table.php
1 |
|
在Laravel5.4中要修改默认字符串长度,app/Providers/AppServiceProvider.php
1 |
|
生成数据表
在终端里输入
1 | php artisan migrate |
如果有错误或者需要修改,可以使用下面命令
1 | php artisan migrate:rollback |
创建模型
利用 artisan 命令创建模型:
1 | php artisan make:model Article |
打开模型文件,输入以下代码:
app/Article.php
1 |
|
这样就可以指定某个表的可写字段。
1 | php artisan route:list |
可以查看到每个路由的控制器的方法
1 | +--------+-----------+-------------------------+------------------+------------------------------------------------------------------------+--------------+ |
创建、修改视图
然后在 resources/views
目录下新建一个文件夹 articles
,然后在 resources/views/articles
目录下新建文件 edit.blade.php
、create.blade.php
、index.blade.php
。
修改create.blade.php
1 | @extends('layouts.app') |
创建文章
然后在ArticlesController.php
创建create()
的方法
1 | public function create(){ |
现在就可以访问http://xxxxx/articles/create,显示创建文章视图,From访问的是储存文章的路由。现在可以写储存文章的方法了。
储存文章
打开 ArticlesController.php
控制器,创建store()
方法。
1 |
|
文章首页
创建index()
方法
1 | public function index(){ |
修改articles.index
的视图
1 | @extends('layouts.app') |
好了,现在创建文章和显示文章列表都有了,现在我们做修改文章和删除文章
修改文章
创建edit()
方法
1 | public function edit($id){ |
更新文章
创建update()
方法
1 | public function update(Request $request,$id){ |
修改articles.edit
视图
1 | @extends('layouts.app') |
删除文章
现在满足了修改更新,下面我们来写删除。修改destroy()
1 | public function destroy($id){ |
现在我们已经满足了,博客的基本的增、删、改、查、的功能,现在我们添加中间件,只有登录后才能使用博客。
添加登录中间件
打开 ArticlesController.php
控制器,创建__construct()
方法。
1 | public function __construct() |
打开app/Http/Middleware/RedirectIfAuthenticated.php
1 |
|
打开app/Http/Controllers/Auth/LoginController.php
1 |
|
修改welcome.blade.php
视图
1 |
|
文章控制器完整代码
1 |
|