<?php namespace app\index\controller; //use app\validate\User; use app\index\facade\User; use think\Controller; class Demo9 extends Controller { //1、验证器:使用Validate类中的rule属性 public function test1() { //要验证的数据 $data=[ 'name'=>'yht12345', 'email'=>'[email protected]', 'password'=>'123456', 'mobile'=>'15988889999' ]; //验证器是一个类 // $validate=new User(); // if(!$validate->check($data)){ // return $validate->getError(); // } //使用当前验证器的静态代理 if(!User::check($data)){ return User::getError(); } return '验证通过'; }
//调用控制器中的validate方法进行验证:使用用户自定义的验证器 public function test2() { //$this->validate($data,$validate);返回验证结果 //要验证数据 $data=[ 'name'=>'yht12345', 'email'=>'[email protected]', 'password'=>'123456', 'mobile'=>'15988889999' ]; //验证规则 $validate='app\validate\User'; $res=$this->validate($data,$validate); if($res !== true){ return $res; } return '验证通过'; }
}
<?php //用户信息表的字段验证器类 namespace app\validate; use think\Validate; class User extends Validate { // protected $rule=[ 'name|姓名'=>[ 'require', 'max'=>20, 'min'=>5, ], 'email|邮件'=>[ 'require', 'email', ], 'password|密码'=>[ 'require', 'max'=>12, 'min'=>3, 'alphaNum', ], 'mobile|手机'=>[ 'require', 'mobile', ], ]; }
<?php namespace app\index\facade; use think\Facade; class User extends Facade { protected static function getFacadeClass() { return 'app\validate\User'; } }
利用thinkphp里面的validate类进行验证
/** * 验证器总结 * 1.验证器是一个自定义的类,必须继承于框架的验证类think\Validate.php * 2.验证器可以创建在应用application目录下的任何一个可以访问的目录下面 * 这个访问是指控制器可以访问,并不是指外部的URL访问,只需要指定正确的命名空间 * 3.验证器其实就是完成框架的think\Validate类中的属性protected $rule=[]初始化 * 4、在控制器中直接实例代调用check()完成验证 * 5、还可以创建一个自定义的静态代理,来统一验证方法的调用方式 */ //2.独立验证:使用的是验证器类think\Validate中的rule方法 //rule()方法实际上就是完成给当前的protected $rule=[]初始化 //独立就是不依赖:不依赖于用户自定义的验证器类:app\validate\User.php public function test3() { //验证规则 $rule=[ 'name|姓名'=>[ 'require', 'max'=>20, 'min'=>5, ], 'email|邮件'=>[ 'require', 'email', ], 'password|密码'=>[ 'require', 'max'=>12, 'min'=>3, 'alphaNum', ], 'mobile|手机'=>[ 'require', 'mobile', ], ]; //添加字段的验证规则:初始化rule属性 Validate::rule($rule); //要验证数据 $data = [ 'name' => 'yht12345', 'email' => '[email protected]', 'password' => '123456', 'mobile' => '15988889999' ]; //如果验证不通过,直接输出错误信息 if(!Validate::check($data)){ return Validate::getError(); } return "验证通过"; }