当前位置:  开发笔记 > 编程语言 > 正文

Zend_Validate_Bet之间的奇怪错误消息

如何解决《Zend_Validate_Bet之间的奇怪错误消息》经验,为你挑选了1个好方法。

我正在试验Zend_Validate_Between类.

我这样设置了:

$scoreBetweenValidator = new Zend_Validate_Between(-3, 3, true);

所以验证器应该只接受介于-3和3之间的值.

在无效值上,我在haystack错误消息中找不到'%value%',我认为该消息属于Zend_Validate_InArray类(Zend_Validate_InArray :: NOT_IN_ARRAY).

我的问题是我希望使用setMessages方法使用自定义错误消息,但我不知道如何为这个看似外来的消息密钥设置它.

我试过这个:

$scoreBetweenValidator->setMessages(array(
        Zend_Validate_Between::NOT_BETWEEN_STRICT => 'my custom msg',
        Zend_Validate_Between::NOT_BETWEEN => 'my other custom msg',
            //'notInArray' => "doesn't work"
            //Zend_Validate_InArray::NOT_IN_ARRAY => "also doesn't work"
    ));

但我得到了一个没有消息模板的密钥'notInArray'异常.

在Zend Framework中设置自定义验证消息的首选解决方案是什么?

作为对杰森的回复:

Zend_Form_Element_Select是一个内部Zend_Form的附着有类addElements方法.

表单中没有任何其他元素,它没有任何其他验证器,只有Between.

select的选项在默认情况下都是有效的,但是当我调整选项值(使用Firebug)并设置无效值(作为自我黑客尝试)时,我收到notInArray异常.



1> jason..:

Zend_Form_Element_Select 自动添加InArray验证器.

要为它设置错误消息,这应该可以解决问题:

$element->getValidator('InArray')->setMessage('Your inArray error message here', Zend_Validate_InArray::NOT_IN_ARRAY);

如果您根本不需要InArray验证器,则可以通过调用setRegisterInArrayValidator(false)元素或registerInArrayValidator在元素创建时将false传递给配置键来禁用此行为.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有