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

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

$name->setRequired( TRUE )
    ->setAttrib( 'id', 'fullname' )
    ->addErrorMessage( 'Please provide your name' );

Однако я не могу воспроизвести это при создании элемента формы с использованием фабричного шаблона.
Ключ errorMessage ничего не делает.

$this->addElement('text', 'city', array(
        'placeholder'   => 'City*',
        'required'      => true,
        'filters'       => array('StringTrim', 'StripTags'),
        'errorMessage'  => 'TEST',
        'validators'    => array(
            array('StringLength', false,
                array(3, 50, 
                    /*'messages' => array(
                        Zend_Validate_StringLength::TOO_SHORT => 'too short'
                    )*/
               )
            )
        ),
        'decorators'    => array('ViewHelper','Errors'),
    ));

Я могу переопределить каждое сообщение об ошибке Zend по отдельности (см. Закомментированный код), но это очень утомительный процесс.

Есть ли способ переопределить все сообщения об ошибках при создании элемента формы ZF с использованием фабричного шаблона?

3 ответа

Решение

Нет способа переопределить ВСЕ сообщения об ошибках

Я не пробовал это, но я думаю, что вы можете сделать:

'errorMessages'  => array('TEST'),

Заметить, что errorMessages во множественном числе, и вы передаете массив из одного элемента вместо строки.

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

'validators' => array(
                    'NotEmpty', 
                    true, 
                    array( 'messages' => array( 'isEmpty' => "Please provide your name.") )

если это поле не заполнено, сообщение об ошибке будет "Пожалуйста, укажите ваше имя".

Другие вопросы по тегам