• 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);
    }
  • 相关阅读:
    Encryption (hard) CodeForces
    cf 1163D Mysterious Code (字符串, dp)
    AC日记——大整数的因子 openjudge 1.6 13
    AC日记——计算2的N次方 openjudge 1.6 12
    Ac日记——大整数减法 openjudge 1.6 11
    AC日记——大整数加法 openjudge 1.6 10
    AC日记——组合数问题 落谷 P2822 noip2016day2T1
    AC日记——向量点积计算 openjudge 1.6 09
    AC日记——石头剪刀布 openjudge 1.6 08
    AC日记——有趣的跳跃 openjudge 1.6 07
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257213.html
Copyright © 2020-2023  润新知