tp5.1严重bug:自定义验证规则被调用多次

浏览:644 发布日期:2020/09/17 分类:ThinkPHP5专区 关键字: tp5.1bug,验证
比如:在 发送邮箱验证码验证 场景
当为email,字段加 自定义规checkExpiretime-限定60秒后才能再请求    public function sceneSendEmailCheckCode()
    {
        return $this->only(['id','captcha','email']) 
        ->append('email','checkExpiretime|checkFrequent') //checkExpiretime|checkFrequent 为自定义验证规则,checkExpiretime为此场景专用
        ;
    }
但是这个规则checkExpiretime在返回true后,又被调用了一次

附件发两个xdebug相关图

这个问题稳定重现

麻烦赶紧修复下

版本:tp5.1.39

补充[已找到问题]:    protected $rule = [
        'email|邮箱'=>'require|length:1,100|email|unique:user',
    ];
// 这里定义时 给email设置了中文名"邮箱" 
//而上面append时用的'email'
//所以 被认为了不同的rule
//所以这是个bug,实锤了,麻烦赶紧优化修复下
//总不能每次append都加个'邮箱'这样的中文名吧-这样的话又有新bug,只能所有不加中文名了,定义好各种错误message
最佳答案
评论( 相关
后面还有条评论,点击查看>>