我在 controller 控制器方法里面设置的代码如下
$validate = new \app\admin\validate\Admin; if (!$validate->scene('edit')->check($data)) {//添加验证场景,这里调用 edit 的规则进行验证 dump($validate->getError()); die; }
然后验证控制器的方法代码如下
'require|max:25', 'password' => 'require', ]; protected $message = [ 'username.require' => '用户名必须', 'username.max' => '管理员长度最大 25 字符', 'password.require' => '密码必须', ]; protected $scene = [ 'edit' => ['username'=>'require','password'],//添加应用场景 ]; } 现在我的疑问是,我明明设置了验证场景,为什么 username 为空的时候不报错;;;可以继续执行成功 1
luobo 2018-06-03 23:03:34 +08:00
是不是 required
|
2
wuxi889 2018-06-06 09:43:43 +08:00
然后验证控制器的方法代码如下
'require|max:25', 'password' => 'require', ]; 你这代码明显不完整,提问的时候请帖完整的代码 |
3
dongsir 2019-10-01 13:28:42 +08:00
你好,不是无效,而是你的参数里面可能含有 `空白字符` 比如说:
- "\0" - NULL - "\t" - 制表符 - "\n" - 换行 - "\x0B" - 垂直制表符 - "\r" - 回车 - " " - 空格 所以检测空的时候当然会通过啦,解决方法有很多,可以参照: thinkphp 验证器 require 无效 https://blog.csdn.net/qq6759/article/details/101681536 |