Zend Form: добавить сообщение об ошибке после проверки формы

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

Я пытаюсь добавить сообщения об ошибках, которые я получаю от Zend_Auth (теперь я показываю их с помощью flashMessenger).

Я пробовал что-то вроде этого:

$form->getElement('username')->addErrorMessage('my message');

Ответ 1

Из документации по форме zend -

addErrorMessage ($ message): добавьте сообщение об ошибке для отображения по форме ошибки проверки. Вы можете назвать это не раз, а новые сообщения добавлен в стек.

addError ($ message): добавьте сообщение настраиваемый стек сообщений об ошибках и флага недействительна.

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

Ответ 2

if(!$your_zend_auth_result){
    $form->getElement('username')->addError('Your Message');
    $form->markAsError();
}

Ответ 3

Вам нужно использовать метод setErrors() для создания стека ошибок. В случае, когда элемент уже имеет некоторые ошибки, вы должны использовать метод addErrors(). Чтобы проверить, есть ли у элемента ошибки, вы можете использовать метод hasErrors()