zoukankan      html  css  js  c++  java
  • thinkphp验证器

    验证器分为独立验证和验证器

    独立验证:https://www.kancloud.cn/manual/thinkphp5/129352

    验证器:

    验证器定义: app/index/validate/User.php

    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'        => '邮箱格式错误',    
    ];
    
        protected $scene = [
            'edit'  =>  ['name','age'],
        ];
    }
    

    在控制器中使用和验证场景

    $result = $this->validate($data,'User.edit');
    if(true !== $result){
        // 验证失败 输出错误信息
        dump($result);
    }
    
    ### 在模型中使用:
    
    如果当前模型就是当前验证器则:
    $User = new User;
    // 调用当前模型对应的User验证器类进行数据验证
    $result = $User->validate(true)->save($data);
    if(false === $result){
        // 验证失败 输出错误信息
        dump($User->getError());
    }
    
    如果需要调用的验证器类和当前的模型名称不一致,则可以使用:
    $User = new User;
    // 调用Member验证器类进行数据验证
    $result = $User->validate('Member')->save($data);
    if(false === $result){
        // 验证失败 输出错误信息
        dump($User->getError());
    }
    
    主要区别在于validate()方法中的参数
    
    
    
    
    ### 模型中增加场景验证
    
    $User = new User;
    
    $result = $User->validate('User.edit')->save($data);
    if(false === $result){
        // 验证失败 输出错误信息
        dump($User->getError());
    }
    	
    ### 内置规则:
    

    https://www.kancloud.cn/manual/thinkphp5/129356

    使用内置的规则验证单个数据,可以使用静态调用的方式。
    // 日期格式验证
    Validate::dateFormat('2016-03-09','Y-m-d'); // true
    // 验证是否有效的日期
    Validate::is('2016-06-03','date'); // true
    // 验证是否有效邮箱地址
    Validate::is('thinkphp@qq.com','email'); // true
    // 验证是否在某个范围
    Validate::in('a',['a','b','c']); // true
    // 验证是否大于某个值
    Validate::gt(10,8); // true
    // 正则验证
    Validate::regex(100,'d+'); // true
    来自 <https://www.kancloud.cn/manual/thinkphp5/162814> 
    ### 自定义验证规则
    
    <?php
    	namespace appindexvalidate;
    	use thinkValidate;
    	class User extends Validate
    	{
            // 验证规则
            protected $rule = [
                ['nickname', 'require|min:5', '昵称必须|昵称不能短于5个字符'],
                ['email', 'checkMail:thinkphp.cn', '邮箱格式错误'],
                ['birthday', 'dateFormat:Y-m-d', '生日格式错误'],
            ];
            // 验证邮箱格式 是否符合指定的域名
            protected function checkMail($value, $rule)
            {
            	return 1 === preg_match('/^w+([-+.]w+)*@' . $rule . '$/', $value);
            }
    }
    
  • 相关阅读:
    fastx_toolkit软件使用说明
    转:bwa的使用方法
    转: Annovar 软件注释流程介绍
    转:linux下bwa和samtools的安装与使用
    GFF3格式
    漂浮广告窗
    CPU指令集设计RISC和CISC
    南方
    成都 夹三品
    微嵌1
  • 原文地址:https://www.cnblogs.com/qinsilandiao/p/13432417.html
Copyright © 2011-2022 走看看