经过摸索,终于能在laravel 5.1中应用验证码了。
因为英语渣五水平,所以几乎没搜索到什么有用的,于是考虑在github上搜索验证码包!
提示: github上的package中往往会有使用说明,照着上面的实现,一般都能做出来。
我使用的是mews captcha
git 上的地址:https://github.com/mewebstudio/captcha 上面的使用很详细了。
动手实现:
-- 手动进入 laravel 项目目录
-- 在对应目录下,找到composer.json文件,打开它,添加如下语句:
如图:添加语句
{
"require": {
....
....
....
"mews/captcha": "~2.0"
},
"minimum-stability": "dev"
}
-- 执行composer update, 如果报错,请先执行composer self-update, 然后再执行 composer update, 还是不行就 composer install
-- 找到config/app.php打开,添加如下语句:
1.打开这个文件,找到providers项,添加如下语句
Mews\Captcha\CaptchaServiceProvider::class,
2.找到aliases项,添加如下语句:
添加语句:
'Captcha' => Mews\Captcha\Facades\Captcha::class,
-- cmd窗口中执行 php artisan vendor:publish
通过上面的所有步骤,查看目录,你会发现在vendor下多了mews目录,并且你可以使用命名空间 use Captcha, 在config/captcha.php中存在一个验证码的配置文件captcha.php。
-- 上面的所有步骤在 https://github.com/mewebstudio/captcha 中同样存在!
我们来看一看新增的vendor/mews目录
我们找到vendor/mews/captcha/src/captcha.php
查找public 方法, 发现:
public function create($var) --- 生成验证码
public function check($var) --- 判断输入和验证码是否相等
public function src($var) --- 输出img属性src的链接
public function img($var) --- 输出img标签
-- 其中,$var 参数就是,config/captcha.php 中 对应的键,分别可以是:
default, flat, mini, inverse 代表了四种风格的验证码!可以针对不同风格进行配置,直接在config/captcha.php中修改配置项
视图层的调用:
@if($errors->has('captcha'))
<div class="col-md-12">
<p class="text-danger text-left"><strong>{{$errors->first('captcha')}}</strong></p>
</div>
@endif
<img src="{{captcha_src()}}" onclick="this.src='{{captcha_src()}}'+Math.random()" title="点击图片重新获取验证码">
validate验证:
public function validatecap($data){
$validator = Validator::make($data, [
// 如何在这里转换数据
'captcha' => 'required|captcha',
],[
'captcha.required' => '请填写验证码',
'captcha.captcha' => '验证码错误',
]);
if($validator->fails()){
return $validator->messages();
}
}