首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cakephp自定义验证方法返回False,但保存和不显示消息

Cakephp自定义验证方法返回False,但保存和不显示消息
EN

Stack Overflow用户
提问于 2020-08-28 18:26:15
回答 1查看 98关注 0票数 0

我在ValidationDefault下有以下验证器来检查effective_until日期是否在effective_on日期之后。如果为false,则应显示消息。

代码语言:javascript
运行
复制
$validator
            ->add('effective_until', 'custom', ['rule' => 'checkEffectiveDateRange', 'provider' => 'table', 'message' => 'The effective until date must come after the effective on date.']);

我在同一个表中有以下自定义函数,但即使故意将effective_until日期设置为早于effective_on日期,它也保存数据,并且不显示验证错误消息。我在这里做错什么了吗?

代码语言:javascript
运行
复制
    public function checkEffectiveDateRange($check, $context)
    {
        if(array_key_exists('newRecord',$context))
        {
                return strtotime($context['data']['effective_on']) < strtotime($check);
        }
        else
        {
                return strtotime($context['effective_on']) < strtotime($check);
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-01 14:55:05

对于任何可能需要这样做的人,我通过将验证器更改为下面的方法来解决这个问题。

Validator

代码语言:javascript
运行
复制
public function validationDefault(Validator $validator): Validator
{
        $validator
            ->add('effective_until', 'custom',
            ['rule' => function($check, $context) {
                if($this->checkEffectiveDateRange($check, $context)) {
                        return true;
                }
                return false;
            },
            'message' => 'The effective until date must come after the effective on date.']);

        return $validator;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63639111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档