Вторым параметром метода addValidator () является метакоманда breakChainOnFailure.Просто установите значение true.Таким образом, вы будете делать
class Application_Form_User_Register extends Zend_Form
{
public function init()
{
$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email adres: (*)')
->setRequired(true)
//->addErrorMessage('Het veld Email adres is verplicht')
->addValidator('StringLength', true, array(6,100))
//->addErrorMessage('Het email adres dient uit minstens 6 karakters te bestaan')
->addValidator('EmailAddress', true)
//->addErrorMessage('Het veld Email adres moet een geldig email adres bevatten')
->addFilter('StringTrim');
$this->addElement($email);
}
}
Это приведет к разрыву цепочки валидатора в случае его сбоя.
Вот что говорит веб-сайт Zend Framework о пользовательских сообщениях валидатора:
Примечание. Предоставление пользовательских сообщений об ошибках валидатора Некоторые разработчики могут захотеть предоставить собственные сообщения об ошибках для валидатора.Аргумент $ options метода Zend_Form_Element :: addValidator () позволяет сделать это, предоставив ключ 'messages' и сопоставив его с массивом пар ключ / значение для установки шаблонов сообщений.Вам нужно будет знать коды ошибок различных типов ошибок валидации для конкретного валидатора.Лучший вариант - использовать Zend_Translate_Adapter с вашей формой.Коды ошибок автоматически передаются адаптеру декоратором ошибок по умолчанию;затем вы можете указать свои собственные строки сообщений об ошибках, настроив переводы для различных кодов ошибок ваших валидаторов.
Подробнее см. Здесь: http://framework.zend.com/manual/en/zend.form.elements.html
Ваш второй вопрос, изменяющий место появления сообщения об ошибке, требует настройки декораторов для этих элементов формы.Вы определенно можете это сделать, и это не так сложно, как кажется на первый взгляд.Эта статья действительно помогла мне понять декораторы: http://devzone.zend.com/article/3450