У меня есть элемент формы для захвата адресов электронной почты. Я использую Zend_Validate_EmailAddress
для элемента, и он генерирует сообщения об ошибках, которые не очень удобны для пользователя.
Мой первый шаг состоял в том, чтобы указать новые сообщения, которые были бы более удобными для пользователя, но некоторые из проверок просто не поддаются удобному сообщению. Затем я попытался просто очистить эти сообщения после запуска isValid()
в форме и указать свои собственные, но ни одна из найденных мной функций не очистит сообщения.
Что я пробовал и результаты
setErrorMessages()
- Установленные здесь значения, похоже, полностью игнорируютсяclearErrorMessages()
- Кажется, игнорируетсяsetErrors()
- Добавляет мое сообщение, но оставляет остальные нетронутыми
Это код, который отображает ошибки в моем пользовательском сценарии просмотра:
<?php if ($this->element->hasErrors()): ?>
<?php echo $this->formErrors($this->element->getMessages()); ?>
<?php endif; ?>
МОЕ РЕШЕНИЕ
Я награждаю Гордона ответом, потому что его решение является наиболее полным, но в итоге я использовал функцию addErrorMessage()
на элемент вот так< /а>:
$element->addValidator('EmailAddress', false, $this->_validate['EmailAddress'])
->addErrorMessage("'%value%' is not a valid email address");
$element->addValidator('Date', false, array('MM/dd/yyyy'))
->addErrorMessage("Date must be in MM/DD/YYYY format");