Как установить сообщение валидатора NotEmpty на Zend_Form_Element? - PullRequest
4 голосов
/ 20 декабря 2009

У меня есть элемент формы, который я устанавливаю по мере необходимости:

$this->addElement('text', 'email', array(
    'label'      => 'Email address:',
    'required'   => true
));

Так как я устанавливаю значение true, оно гарантирует, что оно не пустое. Сообщение об ошибке по умолчанию выглядит следующим образом:

"Value is required and can't be empty"

Я попытался установить сообщение на валидаторе, но это приводит к фатальной ошибке:

$validator = $this->getElement('email')->getValidator('NotEmpty');
$validator->setMessage('Please enter your email address.');

Вызов функции-члена setMessage () для необъекта

Как я могу установить для сообщения произвольное сообщение об ошибке?

Ответы [ 2 ]

7 голосов
/ 20 декабря 2009

Вам нужно перезаписать / указать NotEmpty-validator вместо использования по умолчанию:

$this->addElement('text', 'email', array(
    'label'      => 'Email address:',
    'required'   => true,
    'validators' => array (
       'NotEmpty' => array (
          'validator' => 'NotEmpty',
          'options' => array (
              'messages' => 'YOUR CUSTOM ERROR MESSAGE'
          )
       )
    )
));
1 голос
/ 20 января 2011
$neValidator = new Zend_Validate_NotEmpty();
$neValidator->setMessage('Please enter your email address.');

$textElement = new Zend_Form_Element_Text('email');
$textElement->addValidator($neValidator);
...