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

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

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

person jblue    schedule 02.10.2010    source источник


Ответы (4)


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

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

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

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

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

$validator->setMessages('string error')

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

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

Ваше здоровье

person Adrian Schneider    schedule 02.10.2010
comment
у меня есть некоторые дополнительные ошибки, но использование первой проверки не работает - person Walter Caraza; 12.07.2014

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

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

->addValidator('NotEmpty', true, array('messages'=>'Cannot be empty'))
person Jayachandran J    schedule 16.12.2011

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

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

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

person Nilesh Gupta    schedule 13.02.2013
comment
Мне нравится указанная обработка сообщений через 'notAlpha'. можете ли вы указать мне, где я могу найти больше этих идентификаторов для остальных валидаторов? все равно спасибо :^) - person Katia; 23.05.2014
comment
Вы найдете эти варианты сообщений об ошибках в файле проверки. перейдите по пути ниже: проект/библиотека/Zend/Validate, выберите правило проверки. Здесь вы найдете список const, который предназначен для сообщения об ошибке. - person Nilesh Gupta; 04.02.2015

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

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

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

person visit2shobhit    schedule 24.12.2013