Zend验证器和错误消息:addValidator和addErrorMessage

时间:2010-10-02 07:44:53

标签: php zend-framework zend-form zend-form-element

如果我有一个表单元素附加了多个验证器(本例中为3),当每个唯一验证器失败时,如何使用addErrorMessage创建自定义错误消息。有没有办法为每个验证器添加自定义消息?

$element = new Zend_Form_Element_Text()...
$element->....
        ->addValidator(...)
        ->addValidator(...)
        ->addValidator(...)
        ->addErrorMessage()

4 个答案:

答案 0 :(得分:11)

通常它是根据验证器错误消息完成的,而不是每个验证器......

$element->setErrorMessages(array(Zend_Validate_...::CONSTANT => 'New Message'));

但我经常更喜欢将所有元素的错误覆盖为单个

$element->setErrorMessages(array('Single Error'));

或者,如果我需要每个验证器,这可行...

$validator->setMessages('string error')

应该将所有验证程序的错误覆盖到单个邮件中。我无法在任何地方找到这个记录,但它对我有用。因此,它可能不适用于所有版本?

对我来说,错误消息处理有点乱,除非您想覆盖所有可能的错误消息,但希望其中一个解决方案适合您。

干杯

答案 1 :(得分:6)

将您的消息与验证器一起添加,如下所示。  例如:

->addValidator('StringLength', false, array(0,255,'messages'=>'Cannot be more than 255 chars'))

->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty'))

答案 2 :(得分:2)

像这样添加你的信息

- > addValidator('Alpha',true,array('messages'=> array('notAlpha'=>“请仅在产品名称中输入字母字符。
”)) );

根据您的错误字符串

添加验证器消息

答案 3 :(得分:0)

addErrorMessage('您的自定义消息');这也是打印自定义消息的最简单方法。

addErrorMessage在libraray / zend / Form / Elements.php

中定义

希望它有所帮助!!