1. 程式人生 > >Laravel5.5 使用第三方Vendor添加註冊驗證碼

Laravel5.5 使用第三方Vendor添加註冊驗證碼

per 中文 生成 進入 打開 操作 提示 沒有 紅色

Laravel5系列的驗證碼添加通用,使用第三方驗證碼即可完美實現。這裏記錄下具體步驟吧,以備不時之需。

第一步:使用composer 安裝 驗證碼庫

composer require mews/captcha

第二步:註冊providers (config/app.php) ,在這個數組中的最後追加如下代碼:

Mews\Captcha\CaptchaServiceProvider::class,

第三步:註冊aliases (config/app.php),在這個數組中的最後追加如下代碼:

‘Captcha‘ => Mews\Captcha\Facades\Captcha::class
,

第四步:生成配置文件,在Composer命令行中輸入如下命令:

php artisan vendor:publish

進入config/captcha.php 文件,修改default 數組 可以對驗證碼進行樣式、數量、大小上的修改。

‘default‘   => [
‘length‘    => 5,
‘width‘     => 100,
‘height‘    => 34,
‘quality‘   => 90,
],

頁面中使用:

<div class="row">
    <div class="col-md-8"
> <input type="text" class="form-control {{$errors->has(‘captcha‘)?‘parsley-error‘:‘‘}}" name="captcha" placeholder="captcha"> </div> <div class="col-md-4"> <img src="{{captcha_src()}}" style="cursor: pointer" onclick="this.src=‘{{captcha_src()}}‘+Math.random()"
> </div> @if($errors->has(‘captcha‘)) <div class="col-md-12"> <p class="text-danger text-left"><strong>{{$errors->first(‘captcha‘)}}</strong></p> </div> @endif </div>

第五步:驗證碼校驗規則添加:(重寫AuthController 登錄驗證方法,並自定義提示信息)

$this->validate($request, [
            $this->loginUsername() => ‘required‘,
            ‘password‘ => ‘required‘,
            ‘captcha‘ => ‘required|captcha‘,
        ],[
           ‘captcha.required‘ => trans(‘validation.required‘), 
       ‘captcha.captcha‘ => trans(‘validation.captcha‘),
]);

截止到目前為止,驗證碼就實現了。不過這裏還遺留一個小小的問題。就是驗證碼校驗失敗後,錯誤提示語言為英文。


這裏介紹兩種辦法,第一種很簡單,直接將上面紅色代碼替換為下面的即可!

 ‘captcha.required‘ => trans(‘抱歉,驗證碼必填‘), 
 ‘captcha.captcha‘ => trans(‘驗證碼不正確‘),

第二種就麻煩一點了,不過這裏推薦這種“不偷懶”的方法。

字體庫的下載與切換:

首先需要下載字體庫。下載完成後,將壓縮包中 src/zh-CN 文件夾拷貝到項目目錄的 resources/lang 文件夾下。

修改 config->app.php 文件,修改代碼如下:

‘locale‘ => ‘zh-CN‘,

由於captcha在中文包中沒有中文解釋,所以需要手動添加中文解釋,具體操作如下:

打開 resources/zh-CN/validation.php,在總數組中追加如下鍵值對:

‘captcha‘                  => ‘:attribute 不正確。‘,

在 attributes 數組中追加如下鍵值對:

‘captcha‘               => ‘驗證碼‘,

好了,到此為止使用第三方擴展實現驗證碼就可以實現了。

Laravel5.5 使用第三方Vendor添加註冊驗證碼