Laravel 5.3 学习笔记

关于部署

在这里写部署流程,也是对自己写的东西做一个笔记。

项目是直接部署在WampServer环境里,默认访问链接http://localhost/Laravel-BBS/public
编辑器使用的PhpStorm,因为这个编辑器专门对Laravel框架做过优化…

开始

1
composer create-project laravel/laravel bbs --prefer-dist

用composer包管理器,创建一个Laravel项目 命名为bbs。

composer的中文文档,由于国内GFW原因,推荐使用镜像或者VPN。

Laravel5.3目录结构

部署数据库

修改.env文件

1
2
3
4
5
6
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bbs
DB_USERNAME=root
DB_PASSWORD=

默认认证

首先我们使用Laravel 5.3提供的开箱即用的认证:

1
php artisan make:auth

详细教程用户登录注册→教程

如果Login/Register视图静态资源文件出现问题请修改app.blade.php的app.js和app.css的路径。

1
2
<link href="**{{ url('css/app.css') }}**" rel="stylesheet">
<script src="**{{ url('js/app.js') }}**"></script>

关于Laravel静态资源和路径获取方法:教程,到这里一个非常基础的登录注册就完成了!

验证码扩展包

Composer验证码包简介:https://packagist.org/packages/mews/captcha

也用中文验证码包:https://packagist.org/packages/kangkang66/captcha

安装

1
composer require mews/captcha

配置

使用Captcha服务提供者之前还需要在config/app.php中注册服务提供者:

1
2
3
4
'providers' => [
// ...
Mews\Captcha\CaptchaServiceProvider::class,
]

同时注册下相应门面:

1
2
3
4
'aliases' => [
// ...
'Captcha' => Mews\Captcha\Facades\Captcha::class,
]

如果要使用自定义的配置,还可以发布配置文件到config目录:

1
php artisan vendor:publish

编辑新生成的Captcha.php

重写默认登录注册验证方法

找到:H:\wamp64\www\Laravel-BBS\app\Http\Controllers\Auth\LoginController.php
进入AuthenticatesUsers找到validateLogin方法,修改验证方法代码如下:

1
2
3
4
5
6
7
8
9
10
11
protected function validateLogin(Request $request)
{
$this->validate($request, [
$this->username() => 'required',
'password' => 'required',
'captcha'=>'required|captcha|max:5'
],[
'captcha.captcha'=>trans('验证码错误!'),
'captcha.required'=>trans('验证码为必须!'),
]);
}

同理,也可以在注册也添加上验证码:
找到H:\wamp64\www\Laravel-BBS\app\Http\Controllers\Auth\RegisterController.php
修改验证:

1
2
3
4
5
6
7
8
9
10
11
12
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'captcha'=>'required|max:5|captcha'
],[
'captcha.captcha'=>trans('验证码错误!'),
'captcha.required'=>trans('验证码为空!')
]);
}

对视图文件的修改

添加验证码图片+验证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="form-group{{ $errors->has('captcha') ? ' has-error' : '' }}">
<label for="text" class="col-md-4 control-label">验证码</label>

<div class="col-md-6">
<input id="text" type="captcha" class="form-control" name="captcha" required>
<br/>
<span class="input-group-btn">
<img style="" src="{{captcha_src()}}"
onclick="this.src='{{captcha_src()}}' + Math.random()">
</span>
@if ($errors->has('captcha'))
<span class="help-block">
<strong>{{ $errors->first('captcha') }}</strong>
</span>
@endif
</div>
</div>

安装Laravel语言包

1
composer require "overtrue/laravel-lang:~3.0"

Laraval 5.*

完成上面的操作后,将项目文件 config/app.php 中的下一行

1
Illuminate\Translation\TranslationServiceProvider::class,

替换为:

1
Overtrue\LaravelLang\TranslationServiceProvider::class,

修改项目语言 config/app.php

1
'locale' => 'zh-CN',

未完待续。。。