V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qq190931575
V2EX  ›  PHP

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

  •  
  •   qq190931575 · 2018-06-03 22:56:43 +08:00 · 3661 次点击
    这是一个创建于 2367 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    你这代码明显不完整,提问的时候请帖完整的代码
    dongsir
        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
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1096 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:08 · PVG 03:08 · LAX 11:08 · JFK 14:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.