1.创建User验证器(继承validate验证类);
2.创建User验证器的静态代理类;
3.验证方法调用:验证器验证和独立验证;
User验证器
<?phpnamespace app\validate;use think\Validate;//User验证器class User extends Validate{protected $rule = ['name'=>['require','min'=>5,'max'=>10,],'email'=>['require','email'=>'email',],'password'=>['require','min'=>6,'max'=>20,],'mobile'=>['require','mobile'=>'mobile',]];}
User验证器的静态代理类
<?phpnamespace app\facade;use think\Facade;class User extends Facade{protected static function getFacadeClass(){return '\app\validate\User';}}
验证方法调用
<?phpnamespace app\index\controller;/** 验证器总结* 1.验证器是一个自定义的类,必须继承于框架的验证类think\validate.php* 2.验证器可以创建在应用app目录下的任何一个可以访问的目录下面,这个访问是指控制器可以访问,并不是外部的URL访问,只需要指定正确的命名空间* 3.验证器就是完成框架的think\validate类的属性protected $rule=[]初始化* 4.在控制器中直接实例化调用 check()完成验证* 5.还可以创建一个自定义的静态代理,来统一验证方法的调用方式*/use think\Controller;//use app\validate\User;//引入User验证器的静态代理use app\facade\User;class Demo9 extends Controller{//一、验证器验证//方法1:调用验证器类,User是validate的实现。public function test1(){//要验证的数据$data = ['name' => 'mahairen','email' => 'nx99@qq.com','password' => '123abc','mobile' => '13909511163',];$validate = new \app\validate\User();//调用验证器的check方法来验证数据if (!$validate->check($data)){return $validate->getError();}return '验证通过';}//方法2:使用静态代理User验证器,不用实例化了public function test2(){//要验证的数据$data = ['name' => 'mahairen','email' => 'nx99@qq.com','password' => '123abc','mobile' => '13909511163',];if (!User::check($data)) {return User::getError();}return '验证通过';}//方法3:(最常用)调用控制器中的validate方法进行验证:使用用户自定义的验证器/类public function test3(){//要验证的数据$data = ['name' => 'mahairen','email' => 'nx99@qq.com','password' => '123abc','mobile' => '13909511163',];//验证规则$validate = 'app\validate\User';$res = $this->validate($data,$validate);if (true !== $res){return $res;}return '验证通过';}//二.独立验证:使用validate类的rule属性//rule()方法实际上就是完成给当前类的protected $rule = []初始化public function test4(){//创建验证规则$rule = ['name'=>['require','min'=>5,'max'=>10,],'email'=>['require','email'=>'email',],'password'=>['require','min'=>6,'max'=>20,],'mobile'=>['require','mobile'=>'mobile',]];//要验证的数据$data = ['name' => 'mahairen','email' => 'nx99@qq.com','password' => '123abc','mobile' => '13909511163',];//添加字段的验证规则,初始化rule属性validate::rule($rule);//校验数据,如果验证不通过,直接输出错误信息if (!validate::check($data)){return validate::getError();}return '验证通过';}}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号