• TP5验证规则使用


    定义验证器类:

    namespace appindexvalidate;
    use thinkValidate;
    class User extends Validate
    {
        protected $rule = [
            'name'  =>  'require|max:25',
            'email' =>  'email',
        ];
    
        protected $message = [
            'name.require'  =>  '用户名必须',
            'email' =>  '邮箱格式错误',
        ];
    
        protected $scene = [
            'add'   =>  ['name','email'],
            'edit'  =>  ['email'],
        ];    
    }
     

    ①静态调用(使用内置的规则验证单个数据,返回值为布尔值

    // 日期格式验证
    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

    ②模型验证(在模型中的验证方式

    $User = new User;
    $result = $User->validate(
        [
            'name'  => 'require|max:25',
            'email'   => 'email',
        ],
        [
            'name.require' => '名称必须',
            'name.max'     => '名称最多不能超过25个字符',
            'email'        => '邮箱格式错误',
        ]
    )->save($data);
    if(false === $result){
        // 验证失败 输出错误信息
        dump($User->getError());
    }

    ③控制器验证(控制器中进行验证

    如果你需要在控制器中进行验证,并且继承了 hinkController的话,可以调用控制器类提供的validate方法进行验证,如下:

    $result = $this->validate(
        [
            'name'  => 'thinkphp',
            'email' => 'thinkphp@qq.com',
        ],
        [
            'name'  => 'require|max:25',
            'email'   => 'email',
        ]);
    if(true !== $result){
        // 验证失败 输出错误信息
        dump($result);
    }

    控制器中的验证代码可以简化为:

    $result = $this->validate($data,'User');
    if(true !== $result){
        // 验证失败 输出错误信息
        dump($result);
    }

    如果要使用场景,可以使用:

    $result = $this->validate($data,'User.edit');
    if(true !== $result){
        // 验证失败 输出错误信息
        dump($result);
    }

    在validate方法中还支持做一些前置的操作回调,使用方式如下:

    $result = $this->validate($data,'User.edit',[],[$this,'some']);
    if(true !== $result){
        // 验证失败 输出错误信息
        dump($result);
    }
  • 相关阅读:
    flutter item列表左右滑动带出按钮选项
    flutter之Dismissible组件
    mac下最好用的抓包工具--charles简单操作教程
    flutter 开起charles抓包代理
    nodejs querystring模块
    node.js 中使用 Mongodb
    MongoDB 的高级查询 aggregate 聚合管道
    Mongodb 关系型数据库表(集合)与表(集合)之 间的几种关系
    Mongodb 的使用以及 Mongodb 账户权 限配置
    MongoDb 大数据查询优化、 MongoDB 索引、复合索引、唯一索引、 explain 分 析查询速度
  • 原文地址:https://www.cnblogs.com/zhaohui123/p/7298390.html
Copyright © 2020-2023  润新知