LOADING

Thinkphp5验证类使用

tp3.2的验证只能在model中使用,Tp5中的验证器类可以在控制器中进行实例化操作,便于开发,提升model的复用性
具体操作如下

              $adata['name'] = input('office_name');
        $adata['mobile'] = input('mobile');
        $adata['pwd'] = input('pwd');
        $adata['insert_time'] = time();
        $adata['id'] = input('id');

// 规则验证

        $rule = [
            ['name','chs','名称只能是汉字或字母'],
            ['mobile',['regex'=>'^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$'],'手机号不正确'],
            ['pwd','alphaNum','密码只能是数字和字母的组合'],
        ];
        $validate = new Validate($rule);
        $result   = $validate->check($adata);
        if(!$result){
           $this->error($validate->getError());die;
        }

并且官网上提供了验证规则和提示信息分开配置的例子,便于维护
$rule = [

'name'  => 'require|max:25',
'age'   => 'number|between:1,120',
'email' => 'email',

];
$msg = [

'name.require' => '名称必须',
'name.max'     => '名称最多不能超过25个字符',
'age.number'   => '年龄必须是数字',
'age.between'  => '年龄必须在1~120之间',
'email'        => '邮箱格式错误',

];
$data = [

'name'  => 'thinkphp',
'age'   => 121,
'email' => 'thinkphp@qq.com',

];
$validate = new Validate($rule,$msg);
$result = $validate->check($data);
if(!$result){

echo $validate->getError();

}
这样就可以单独配置提示信息了, 不过我觉得有点啰嗦,不如直接用封装好的rule
tp5封装了助手函数来进行直接实例化
Validate()
请注意:对于一个字段可以设置多个验证规则,使用|分割。 或者采用数组方式定义多个规则(适用于你的验证规则中有|的情况)
如第一种方法中正则使用

标签: Thinkphp5

添加新评论