控制器验证

如果你需要在控制器中进行验证,并且继承了\think\Controller的话,可以调用控制器类提供的validate方法进行验证,如下:

						$result =
							$this->validate(     [
							'name'
							=>
							'thinkphp',
							'email'
							=>
							'[email protected]',     ],     [
							'name'
							=>
							'require|max:25',
							'email'
							=>
							'email',     ]);
							if(true
							!== $result){
							// 验证失败 输出错误信息
							dump($result); }
						
					

如果定义了验证器类的话,例如:

						
							namespace
							app\index\validate;
							use
							think\Validate;
							
								class
								User
								extends
								Validate
							{
							protected
							$rule = [
							'name'
							=>
							'require|max:25',
							'email'
							=>
							'email',     ];
							protected
							$message = [
							'name.require'
							=>
							'用户名必须',
							'email'
							=>
							'邮箱格式错误',     ];
							protected
							$scene = [
							'add'
							=>  ['name','email'],
							'edit'
							=>  ['email'],     ]; }
						
					

控制器中的验证代码可以简化为:

						$result =
							$this->validate($data,'User');
							if(true
							!== $result){
							// 验证失败 输出错误信息
							dump($result); }
						
					

如果要使用场景,可以使用:

						$result =
							$this->validate($data,'User.edit');
							if(true
							!== $result){
							// 验证失败 输出错误信息
							dump($result); }
						
					

在validate方法中还支持做一些前置的操作回调,使用方式如下:

						$result =
							$this->validate($data,'User.edit',[],[$this,'some']);
							if(true
							!== $result){
							// 验证失败 输出错误信息
							dump($result); }
					
文档最后更新时间:2018-04-26 10:47:01

文档
目录

深色
模式

切换
宽度