欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

laravel的validator验证

程序员文章站 2022-07-12 11:29:07
...

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