tp5.1 的问题,关于验证的,设置了验证控制器方法无效,请大牛们看下。。。

2018-06-03 22:56:43 +08:00
 qq190931575

我在 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 为空的时候不报错;;;可以继续执行成功
3553 次点击
所在节点    PHP
3 条回复
luobo
2018-06-03 23:03:34 +08:00
是不是 required
wuxi889
2018-06-06 09:43:43 +08:00
然后验证控制器的方法代码如下
'require|max:25', 'password' => 'require', ];

你这代码明显不完整,提问的时候请帖完整的代码
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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/460072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX