В Zf2, как добавить ошибку css-класс при проверке не удалось

Я хочу добавить красную рамку вокруг окна ввода текста, когда проверка ZF2 не выполнена. Я думаю, что если ZF2 предоставляет способ добавить / установить класс css в случае отказа проверки. Лучше, если это возможно, используя только Zend Validation / Form API. Я не рассматриваю решения на стороне клиента (javascript / jQuery).

ОБНОВИТЬ :

Я использую элемент Form Row таким образом

<div class="row"> <div><?php echo $this->formLabel($form->get('first_name')); ?></div> <div><?php echo $this->formElement($form->get('first_name')); ?></div> <div><?php echo $this->formElementErrors($form->get('first_name'), array('class' => "field-validation-error")); ?></div> </div> 

Вы можете использовать FormRow view helper , который по умолчанию будет отображать недействительные элементы с классом CSS («вход-ошибка»).

Использование в шаблоне очень просто:

 echo $this->formRow($element); 

или если вы хотите создать собственный класс:

 echo $this->formRow()->setInputErrorClass('my-error-class')->render($element); 

Если вы хотите добавить определенные классы «ошибки» к входу, вам нужно будет изменить связанные классы Zend\Form\View\Helper\Form* как они представляют Zend\Form\ElementInterface объекты Zend\Form\ElementInterface и отображают требуемый HTML.

Например:

 // \MyModule\Form\View\Helper\MyCustomFormElement.php class MyCustomFormElement extends \Zend\Form\View\Helper\FormElement { public function render(Element $element) { $errors = $element->getMessages(); if (! empty($errors)) { $classes = $element->getAttribute('class'); if (null === $classes) $classes = array(); if (! is_array($classes)) $classes = explode(' ', $classes); $classes = array_unique(array_merge($classes, array('my-error-class'))); $element->setAttribute('class', implode(' ', $classes)); } return parent::render($element); } } 

Затем просто замените вспомогательный элемент элемента формы по умолчанию, зарегистрировав invokable с тем же именем.

 // Module.php public function getViewHelperConfig() { return array( 'invokables' => array( 'form_element' => 'MyModule\Form\View\Helper\MyCustomFormElement', ), ); }