日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

后盾网lavarel视频项目---自定义验证和自定义验证规则

發布時間:2025/7/14 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 后盾网lavarel视频项目---自定义验证和自定义验证规则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

后盾網lavarel視頻項目---自定義驗證和自定義驗證規則

一、總結

一句話總結:

1、自定義驗證就是用的自定義驗證請求類:php artisan make:request AdminPost
2、自定義驗證規則就是Validator的extend方法:Validator::extend('check_password', function ($attribute, $value, $parameters, $validator) {

?

1、如何創建請求驗證?

php artisan make:request AdminPost

app/Http/Requests/AdminPost.php會被創建

?

2、控制器中如何使用自定義的驗證類?

使用對應的請求實例即可:public function changePassword(AdminPost $request){

?

?

3、自定義請求驗證類中如何自定義驗證規則?

Validator的extend方法:Validator::extend('check_password', function ($attribute, $value, $parameters, $validator) {
/*** 添加驗證規則*/public function addValidator(){//驗證用戶密碼Validator::extend('check_password', function ($attribute, $value, $parameters, $validator) {return Hash::check($value,Auth::guard('admin')->user()->password);});}

?

?

4、自定義請求驗證類中如何自定義驗證錯誤的返回消息?

直接寫一個message函數即可:應該是覆寫了父類的 message函數
/*** 中文提示* @return array*/public function messages(){return ['original_password.required'=>'原密碼不能為空','password.required'=>'密碼不能為空','password_confirmation.required'=>'確認密碼不能為空','password.confirmed'=>'兩次密碼不一致','original_password.check_password'=>'原密碼不正確',];}

?

?

5、修改密碼時候比較原密碼是否正確的邏輯怎么寫?

獲取用戶密碼了用戶填寫的原密碼比較簡單,然后用Hash服務的check方法即可:return Hash::check($value,Auth::guard('admin')->user()->password);
public function addValidator(){//驗證用戶密碼Validator::extend('check_password', function ($attribute, $value, $parameters, $validator) {return Hash::check($value,Auth::guard('admin')->user()->password);});}

?

?

?

二、自定義驗證

示例:

?

?

1、創建請求驗證

php artisan make:request AdminPost

app/Http/Requests/AdminPost.php會被創建

?

2、完善請求驗證類:app/Http/Requests/AdminPost.php

1 <?php 2 3 namespace App\Http\Requests; 4 5 use Illuminate\Foundation\Http\FormRequest; 6 use Auth; 7 use Validator; 8 use Hash; 9 10 class AdminPost extends FormRequest 11 { 12 /** 13 * Determine if the user is authorized to make this request. 14 * 15 * @return bool 16 */ 17 public function authorize() 18 { 19 return Auth::guard('admin')->check(); 20 //return false; 21 } 22 23 /** 24 * 添加驗證規則 25 */ 26 public function addValidator(){ 27 //驗證用戶密碼 28 Validator::extend('check_password', function ($attribute, $value, $parameters, $validator) { 29 return Hash::check($value,Auth::guard('admin')->user()->password); 30 }); 31 } 32 33 /** 34 * Get the validation rules that apply to the request. 35 * 36 * @return array 37 */ 38 public function rules() 39 { 40 $this->addValidator(); 41 return [ 42 'original_password'=>'sometimes|required|check_password', 43 'password'=>'sometimes|required|confirmed', 44 'password_confirmation'=>'sometimes|required', 45 ]; 46 } 47 48 /** 49 * 中文提示 50 * @return array 51 */ 52 public function messages() 53 { 54 return [ 55 'original_password.required'=>'原密碼不能為空', 56 'password.required'=>'密碼不能為空', 57 'password_confirmation.required'=>'確認密碼不能為空', 58 'password.confirmed'=>'兩次密碼不一致', 59 'original_password.check_password'=>'原密碼不正確', 60 ]; 61 } 62 }

26-31行:是驗證用戶修改密碼的時候原密碼時候正確的驗證規則,是自定義的驗證規則,在第42行有使用

52-61行:驗證的信息提示

第40行:將自定義的信息規則使用起來

第19行:驗證用戶是否登錄

第8行:用Hash服務來比較密碼

第29行:$value就是表單提交上來的字段,也就是比較的字段,在這里是original_password

第28行:這里的'check_password'就是這個 自定義驗證的名字

?

3、控制器 :app/Http/Controllers/Admin/MyController.php

1 <?php 2 3 namespace App\Http\Controllers\Admin; 4 5 use App\Http\Requests\AdminPost; 6 use Illuminate\Http\Request; 7 use App\Http\Controllers\Controller; 8 use Auth; 9 10 class MyController extends Controller 11 { 12 //修改密碼的界面 13 public function changePasswordForm(){ 14 return view('admin.my.change_pass'); 15 } 16 17 //修改密碼 18 public function changePassword(AdminPost $request){ 19 $model=Auth::guard('admin')->user(); 20 $model->password=bcrypt($request['password']); 21 $model->save(); 22 } 23 }

驗證是自動驗證,所以控制器中每驗證什么事,也就是需要用到驗證實例,第18行,AdminPost $request

?

?

?

轉載于:https://www.cnblogs.com/Renyi-Fan/p/11515081.html

總結

以上是生活随笔為你收集整理的后盾网lavarel视频项目---自定义验证和自定义验证规则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。