如何使用thinkphp5的表单验证器以及自定义验证规则?

比如以后台添加管理员为例:

admin模块下创建validate目录,在该目录下创建对应控制器的文件,比如控制器是Admin.php,在validate下创建的也要是Admin.php。该文件下的代码:

namespace  app\admin\validate;

use think\Validate;

class Admin extends Validate

{

   protected $rule = [

       'name'  =>  'require|max:25',

 

//thinkphp5没有自带的手机验证,这是自定义验证规则,定义一个函数

       'tell'=>'checkPhone:',  

 

       'company'=>'require',

   ];

 

   protected $message = [

       'name.require'  =>  '姓名不能为空',

       'name.max'  =>  '链接名称长度不能大于25',

       'company.require'  =>  '公司名称不能为空',

   ];

 

   protected $scene = [

       'add'  =>  ['name','tell',‘company],

   ];

 

//自定义验证规格

protected function checkPhone($value){

 

//匹配正则表达式函数       if(preg_match('/^((1[3,5,8][0-9])|(14[5,7])|(17[0,6,7,8])|(19[7]))\d{8}$/',$value)){

            return true;

       }else{

            return  '手机号码格式错误';

       }

 

   }

}

?>

然后在控制器中使用:

$validate = \think\Loader::validate('Admin');

if(!$validate->scene('add')->check($data)){

   $this->error($validate->getError());

}

你可能感兴趣的:(thinkphp5)