zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    [NOI2014]动物园 题解(预览)
    CF1200E 题解
    KMP算法略解
    [EER2]谔运算 口胡
    CF504E Misha and LCP on Tree 题解
    长链剖分 解 k级祖先问题
    双哈希模板
    Luogu P5333 [JSOI2019]神经网络
    UOJ449 【集训队作业2018】喂鸽子
    LOJ6503 「雅礼集训 2018 Day4」Magic
  • 原文地址:https://www.cnblogs.com/hoewang/p/10257213.html
Copyright © 2011-2022 走看看