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

jbl*_*lue 5 php zend-framework zend-form zend-form-element

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

$element = new Zend_Form_Element_Text()...
$element->....
        ->addValidator(...)
        ->addValidator(...)
        ->addValidator(...)
        ->addErrorMessage()
Run Code Online (Sandbox Code Playgroud)

Adr*_*der 11

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

$element->setErrorMessages(array(Zend_Validate_...::CONSTANT => 'New Message'));
Run Code Online (Sandbox Code Playgroud)

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

$element->setErrorMessages(array('Single Error'));
Run Code Online (Sandbox Code Playgroud)

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

$validator->setMessages('string error')
Run Code Online (Sandbox Code Playgroud)

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

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

干杯


小智 6

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

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

->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty'))
Run Code Online (Sandbox Code Playgroud)