🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
系统的控制器基类还提供了数据验证功能,可以调用`validate方法`进行数据验证,如下: ~~~ <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function hello() { $result = $this->validate( [ 'name' => 'thinkphp', 'email' => 'thinkphp@qq.com', ], [ 'name' => 'require|max:25', 'email' => 'email', ]); if(true !== $result){ // 验证失败 输出错误信息 dump($result); } } } ~~~ 如果你有一些规范的规则需要定义,可以定义一个相关的验证器类。 例如,下面给用户相关的验证定义了一个验证器类: ~~~ <?php 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'], ]; } ~~~ 控制器中的验证代码可以简化为: ~~~ <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function hello() { $result = $this->validate($data,'User'); if(true !== $result){ // 验证失败 输出错误信息 dump($result); } } } ~~~ 如果对数据验证使用场景,可以使用: ~~~ <?php namespace app\index\controller; use think\Controller; class Index extends Controller { public function hello() { $result = $this->validate($data,'User.edit'); if(true !== $result){ // 验证失败 输出错误信息 dump($result); } } } ~~~ 更多的验证用法在表单请求和验证一讲中会更详细的描述。 #### 总结 了解完了系统的基础控制器的相关功能后,下一讲我们就来了解下请求对象的概念及用法。