2010-10-02 2 views
5

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

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

ответ

11

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

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

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

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

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

$validator->setMessages('string error') 

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

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

Cheers

+0

У меня есть некоторые дополнительные ошибки, но с использованием первой проверки не работает –

6

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

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

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

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

-> addValidator ('Альфа', правда, массив ('Messages' => Array ('notAlpha' => «Пожалуйста, введите только буквенный символ в названии продукта.
")));

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

+0

Мне нравится обработанная обработка сообщений через 'notAlpha'. можете ли вы направить меня туда, где я могу найти больше этих идентификаторов для остальных валидаторов? спасибо в любом случае: ^) – Katia

+0

Вы найдете эти varibale сообщения об ошибке из файла проверки. перейти к следующему пути project/library/Zend/Validate выберите ваше правило для проверки, Здесь вы найдете список «const», который предназначен для сообщения об ошибке –

0

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

addErrorMessage определяются внутри libraray/ZEND/Форма/Elements.php

Надеется, что это помогает !!

Смежные вопросы