Валидаторы Zend и сообщения об ошибках: addValidator и addErrorMessage

Если у меня есть элемент формы, который прикреплен к нему несколькими валидаторами (3 в этом примере), как бы я мог использовать addErrorMessage для создания настраиваемых сообщений об ошибках, когда каждый уникальный валидатор терпит неудачу. Есть ли способ добавить настраиваемое сообщение для каждого валидатора?

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

Related of "Валидаторы Zend и сообщения об ошибках: addValidator и addErrorMessage"

Обычно это делается для каждого сообщения об ошибке проверки, а не для валидатора …

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

Но я часто предпочитаю переопределять все ошибки элемента до одного

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

или, если мне это нужно на валидатор, это работает …

 $validator->setMessages('string error') 

следует переопределить все ошибки валидатора на одно сообщение. Я не мог найти это документально нигде, но это работает для меня. Из-за этого он может не работать для всех версий?

Для меня обработка сообщений об ошибках является немного беспорядочной, если вы не хотите переопределять все возможные сообщения об ошибках, но, надеюсь, одно из этих решений работает для вас.

ура

Добавьте сообщение вместе с валидатором, как показано ниже. Пример:

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

Добавьте свое сообщение так

-> addValidator ('Alpha', true, array ('messages' => array ('notAlpha' => "Пожалуйста, введите буквенный символ только в Имя продукта.
")));

Добавить сообщение валидатора в соответствии с вашей строкой ошибки

addErrorMessage ('Ваше пользовательское сообщение'); Это также самый простой способ распечатать настраиваемое сообщение.

AddErrorMessage определяется внутри libraray / zend / Form / Elements.php

Надеюсь, поможет!!