多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### 使用think\Validate中的$rule属性 首先在application下建立validate目录,同时创建User.php类文件 ``` namespace app\\validate; use think\\Validate; class User extends Validate { protected $rule = \[ 'name|姓名' => ['require','min' => 5, 'max' => 20\], 'email' =>['require', 'email' => 'email'], 'password' =>['require', 'min' => 3, 'max' => 12,'alphaNum'], 'mobile|电话' => ['require', 'mobile'], ]; } ``` 在index控制器中的index方法中进行验证 use app\validate\User; 需要验证的数据(这里模拟,一般是用户提交过来的数据) ``` $data = [ 'name' => 'jeevin', 'email' => 'jeevin@126.com', 'password' => '123abc', ]; $validate = new User(); if(!$validate->check($data)) { return $validate->getError(); }else { return '验证通过'; } ``` ### 使用静态代理 在application下面建立一个facade目录,然后再建立一个User.php类文件,用来静态代理validate\\User ``` namespace app\\facade; class User extends \\think\\Facade { protected static function getFacadeClass() { return '\\app\\validate\\User'; } } ``` 然后再use app\\facade\\User;就直接调用User::check($data); 如果不用上面的getFacadeClass方法,还可以用bind方法:\\think\\Facade::bind('app\\facade\\User','app\\validate\\User'); ***** ### 控制器验证 通过Controller这个类中的validate($data,$validate)方法进行验证 还是要自己创建一个验证类app\\validate\\User ``` $data = [ 'name' => 'jeevin', 'email' => 'jeevin@126.com', 'password' => '123abc', 'mobile' => '130000000' ]; ``` 调用控制器自带的validate方法来验证 ``` $validate = 'app\\validate\\User'; $res = $this->validate($data, $validate); if(true !== $res) { return $res; } return '验证通过'; ``` ### 独立验证 独立验证是不依赖于用户自定义规则类 使用的是验证器类think\\Validate.php中的rule()方法 rule()方法实际上是完成给定当前类的protected $rule = \[\]属性的初始化 首先引入Validate类,这里引入静态代表类 ``` use think\\facade\\Validate; public function test3() { //创建验证规则 $rule =[ 'name|姓名' => ['require','min' => 5, 'max' => 20], 'email' => ['require', 'email' => 'email'], 'password|密码' =>['require', 'min' => 3, 'max' => 12,'alphaNum'], 'mobile|电话' => ['require', 'mobile'], ]; Validate::rule($rule); $data = [ 'name' => 'jeevin', 'email' => 'jeevin@126.com', 'password' => '123abc', 'mobile' => '18628969869' ]; if(!Validate::check($data)){ return Validate::getError(); } return '验证通过'; } ``` 验证器是一个自定义的类,必须继承框架下的验证类think\\Validate.php; 验证器可以创建在application目录下的任何一个可以访问的目录下面; 验证器其实就完成框架think\\Validate.php中的属性protected $rule = \[\]的初始化; 在控制器中直接实例化调用check()进行验证; 还可以创建一个自定义的静态代理,来统一验证方法的调用方式。