Add class attribute to Form Errors
css, php, zend-form, zend-framework2
Solution
Ok, the solution to my own problem was right in front of me, instead of using:
//within the view
echo $this->formRow($form->get('Name'));
I called each element of the form individually:
//within the view
echo $this->formLabel($form->get('Name'));
echo $this->formInput($form->get('Name'));
echo $this->formElementErrors($form->get("Name"), array('class' => "some_class", 'message' => "errormessage"));
Don´t know if it´s the most efficient way of doing it, plz drop a line if you think otherwise.
Problem
I´m developing an application using Zend Framework 2 and I use FormRow helper to render a label, the input and errors (if present) in a Form. ``` //within the view echo $this->formRow($form->get('Name')); ``` When a user submits the form without filling the required input text field FormRow render´s it with the following error message: ``` <label> <span>Name: </span> <input class="input-error" type="text" value="" placeholder="Insert Name Here" name="Name"> </label> <ul> <li>Value is required and can't be empty</li> </ul> ``` How can I set a class for the li tag to style it afterwards? I know that I can echo the formElementErrors with the desired class attribute via.. ``` <?php echo $this->formElementErrors($form->get("Name"), array('class' => "valuerequired", 'message' => "errortestmessage")); ?> ``` ..but FormRow will still render the error message without the class. Just for reference I´m setting the entity this way: ``` public function getInputFilter() { if (!$this->inputFilter) { $inputFilter = new InputFilter(); $factory = new InputFactory(); $inputFilter->add($factory->createInput(array( 'name' => 'Name', 'required' => true, 'filters' => array( array('name' => 'StripTags'), array('name' => 'StringTrim'), ), 'validators' => array( array( 'name' => 'StringLength', 'options' => array( 'encoding' => 'UTF-8', 'min' => 1, 'max' => 100, ), ), ), ))); $this->inputFilter = $inputFilter; } return $this->inputFilter; } ```