• TP5.1验证器的使用


    首先是验证层的定义

    namespace appindexvalidate;
    
    use thinkValidate;
    
    class User extends Validate
    {
        protected $rule =   [
            'name'  => 'require|max:25',
            'age'   => 'number|between:1,120',
            'email' => 'email',    
        ];
        
        protected $message  =   [
            'name.require' => '名称必须',
            'name.max'     => '名称最多不能超过25个字符',
            'age.number'   => '年龄必须是数字',
            'age.between'  => '年龄只能在1-120之间',
            'email'        => '邮箱格式错误',    
        ];
        

     

    在对应的user层可以使用

    namespace appindexcontroller;
    
    use thinkController;
    
    class Index extends Controller
    {
        public function index()
        {
            $data = [
                'name'  => 'thinkphp',
                'email' => 'thinkphp@qq.com',
            ];
    
            $validate = new appindexvalidateUser;
    
            if (!$validate->check($data)) {
                dump($validate->getError());
            }
        }
    }

     这是一种比较典型的使用验证层的方法

    还有就是一种数据验证

    namespace appindexvalidate;
    
    use thinkValidate;
    
    class User extends Validate
    {
        protected $rule = [
            'name'  =>  'checkName:thinkphp',
            'email' =>  'email',
        ];
        
        protected $message = [
            'name'  =>  '用户名必须',
            'email' =>  '邮箱格式错误',
        ];
        
        // 自定义验证规则
        protected function checkName($value,$rule,$data=[])
        {
            return $rule == $value ? true : '名称错误';
        }
    }

    当然在任何时候都可以在controller层进行验证数据,而不需要去Validata层追加文件进行规则写入

    前提是use thinkValidate;

    $validate = Validate::make([
        'name'  => 'require|max:25',
        'email' => 'email'
    ]);

     还有就是规则的验证场景定义:

    例如我们对用户的入库操作数据需要进行验证,

    但是后期唯一操作不需要在进行验证操作等实际应用:

    $data = [
        'name'  => 'thinkphp',
        'age'   => 10,
        'email' => 'thinkphp@qq.com',
    ];
    
    $result = $this->validate($data,'appindexvalidateUser.edit');
    
    if(true !== $result){
        // 验证失败 输出错误信息
        dump($result);
    }
  • 相关阅读:
    dubbo
    Executer invokeAll
    java并发编程实战 java并发编程的艺术 阅读随笔
    小程序如何获取指定类名高度
    一些好用的Swift三方框架
    微信小程序checkbox多选传多个参数的操作
    关于xcode出现An unknown error occurred. See the install log for more details安装失败解决办法
    iOS 针对于13.0和暗黑模式出现的适配问题
    iOS UITextField如何禁止输入表情及特殊字符
    判断iPhoneX适配问题
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257213.html
Copyright © 2020-2023  润新知