Laravel5.5 使用第三方Vendor添加註冊驗證碼
阿新 • • 發佈:2019-03-27
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添加註冊驗證碼