laravel的validator驗證


1.引入對應的類

use Illuminate\Support\Facades\Validator;

2.自定義規則,寫在模型,控制器,中間件都可以

$rules = [
                'password' => 'required|between;6,20|confirmed',   
                'name' => 'required|between;3,8',  
            ];

3.自定義提示,laravel自帶的提示是英文的這里修改為中文

$message = [
                'password.required' => '密碼不能為空',
                'password.between' => '密碼6到20位',
                'password.confirmed' => '密碼與確認密碼不一致'
            ];

4.驗證

//$input 為獲取到的需要驗證的數組
 $validator = Validator::make($input,$rules,$message);
if($validator->passes){
                return true;
            } else {
                return false;
            }

5.特殊驗證

驗證兩個字段不一致 可使用  confirmed,在需要驗證的值后面加  confirmation 例:

<input type="password" placeholder="密碼" id="password" name="password">
<input type="password" placeholder="確認新密碼" id="password2" name="password_confirmation">

也可直接在數組中修改健名。

6.錯誤信息

if($validator->fails()){//驗證字段失敗,失敗信息自己封裝處理
            $validator->errors()->first(); //返回第一個錯誤消息,一般用這個就行了
            //$validator->errors()->all(); //返回全部錯誤消息,不帶表單下標
            //$validator->errors(); //返回全部錯誤消息,帶表單下標
        }
return back()->withErrors($vilidator);

  

others:

//驗證規則
    protected $role = [
        'passwordOld' => 'required|min:6|max:12', 
        'passwordNew' => 'required|min:6|max:12|confirmed',
        'passwordNew_confirmation' => 'required|min:6|max:12',
    ]; //這三個字段為提交表單的input

    //提示信息 attribute是占位符,這里是custom方法的value
    protected $msgs = [
        'required' => ':attribute不能為空',
        'min' => ':attribute最少:min字符',
        'max' => ':attribute最長:max字符'
        'confirmed' => ':attribute輸入不一致'
    ];

    // 自定義字段名稱,提示的時候用到
    protected $custom = [
        'passwordOld' => '原密碼',
        'passwordNew' => '新密碼',
        'passwordNew_confirmation' => '密碼確認',
    ];

    //設置密碼 $input提交過來的表單和數據
    public function setPassword($input)
    {
        $validator = \Validator::make($input,$this->role,$this->msgs,$this->custom);
        if($validator->fails()){//驗證字段失敗,失敗信息自己封裝處理
            $validator->errors()->first(); //返回第一個錯誤消息,一般用這個就行了
            //$validator->errors()->all(); //返回全部錯誤消息,不帶表單下標
            //$validator->errors(); //返回全部錯誤消息,帶表單下標
        }
    }

  轉載自  http://blog.daozys.com/goods_100.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM