博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TP5.1验证器的使用
阅读量:5819 次
发布时间:2019-06-18

本文共 1747 字,大约阅读时间需要 5 分钟。

首先是验证层的定义

namespace app\index\validate;use think\Validate;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 app\index\controller;use think\Controller;class Index extends Controller{    public function index()    {        $data = [            'name'  => 'thinkphp',            'email' => 'thinkphp@qq.com',        ];        $validate = new \app\index\validate\User;        if (!$validate->check($data)) {            dump($validate->getError());        }    }}

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

还有就是一种数据验证

namespace app\index\validate;use think\Validate;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 think\Validate;

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

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

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

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

$data = [    'name'  => 'thinkphp',    'age'   => 10,    'email' => 'thinkphp@qq.com',];$result = $this->validate($data,'app\index\validate\User.edit');if(true !== $result){    // 验证失败 输出错误信息    dump($result);}

转载于:https://www.cnblogs.com/hoewang/p/10257213.html

你可能感兴趣的文章
Java常见基础问题
查看>>
Java Web整合开发(5) - Session
查看>>
30. 初始化数据库环境
查看>>
Python之print详解
查看>>
Docker的学习--命令使用详解
查看>>
几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service (转)
查看>>
编写更少量的代码:使用apache commons工具类库
查看>>
CSS实现OFF-ON开关按钮
查看>>
网页加载后或者网页加载前执行Javascript
查看>>
Android单元测试之三:使用模拟框架模拟依赖
查看>>
jQuery练习:表单模态框
查看>>
php + Redis 写的类似于新浪微博的feed系统
查看>>
python获取命令行参数
查看>>
Controller接口控制器2
查看>>
在Mac电脑上为iPhone或iPad录屏的方法
查看>>
Ubuntu Vim 复制到系统粘贴板
查看>>
get和post的区别
查看>>
书籍管理系统 -----没有form组件
查看>>
「Vijos 1284」「OIBH杯NOIP2006第二次模拟赛」佳佳的魔法阵
查看>>
[iOS]URL编码和解码
查看>>