zoukankan      html  css  js  c++  java
  • laravel的validator验证

    1.引入对应的类

    use IlluminateSupportFacadesValidator;
    

    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

    既不回头,何必不忘; 既然无缘,何须誓言; 今日种种,逝水无痕; 明夕何夕,君已陌路;
  • 相关阅读:
    收缩sql server数据库日志
    maven设置jdk版本
    maven设置镜像地址
    mysql查询最大值,最小值,平均值,总和
    ajax相同url和参数,将不会重复发起请求
    jsp遍历集合
    jsp分割字符串并遍历
    jsp格式化日期
    java判断文件或文件夹是否在
    sqoop1.4.6 用法总结一
  • 原文地址:https://www.cnblogs.com/zyjfire/p/10566021.html
Copyright © 2011-2022 走看看