用户在上传信息的时候,需要做数据验证,tp5.1给我们提供的验证器类。
那么我们如何用一套验证规则,来对不同页面,提交的数据做不同的验证调整呢?
方法:验证器类(我们要使用`验证场景`)
通过验证场景我们可以指定那个场景下使用哪几种字段验证。
protected $rule = [ 'username|用户名'=>['require'], 'pwd|密码'=>['require','alphaDash'], 'email|邮箱'=>['email'] ] protected $scene = [ 'Login' =>['username','pwd'], 'Register'=>['username','pwd','email'] ];
那我们如何指定某一个字段要用哪几个验证规则呢?这里如“pwd”字段
通过tp验证器类中的only()和remove()方法。remove()方法是用来移除某个字段的某个具体验证规则。
//重新定义一个场景方法,定义规则场景scene关键字加上场景名为方法名 public function sceneLogin(){ return $this->only(['username','pwd','email'])->remove('pwd','alphaDash'); }
要想让我们定义的场景生效还需要在控制器中调用一下场景如下:
scene()来指定使用场景。
$data = $request->post(); $validate = new UserVali; if (!$validate->scene('Login')->check($data)) { return ['cord'=>0,'msg'=>$validate->getError()]; }
这样我们在调用check()方法的时候就会使用我们专门定制的验证规则啦。