5

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

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

4 回答 4

11

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

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

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

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

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

$validator->setMessages('string error')

应该将验证器的所有错误覆盖为单个消息。我在任何地方都找不到这个文档,但它对我有用。因此,它可能不适用于所有版本?

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

干杯

于 2010-10-02T17:38:59.133 回答
6

添加您的消息以及验证器,如下所示。例子:

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

->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty'))
于 2011-12-16T19:07:40.987 回答
2

像这样添加您的消息

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

根据您的错误字符串添加验证器消息

于 2013-02-13T07:03:55.437 回答
0

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

addErrorMessage 在 libraray/zend/Form/Elements.php 中定义

希望能帮助到你!!

于 2013-12-24T09:57:51.600 回答