Display label before input using formRow view helper in Zf2

lukabers picture lukabers · Apr 11, 2013 · Viewed 7.7k times · Source

In Zend Framework 2.1.4 I am using the standard form view helpers to render out my form elements.

When I try:

<?php echo $this->formRow($form->get('Title'));?>

The label text and input element are placed within the label:

<label>
<span>Title</span><input type="text" name="Title" placeholder="Inserisci titolo"
required="required" value="">
</label>

The same with:

<?php echo $this->formCollection($form, TRUE);

However, if I render out the label and input individually:

echo $this->formLabel($form->get('Title'));
echo $this->formInput($form->get('Title'));

It generates the html I want:

<label for="Title">Title</label>
<input type="text" name="Title" placeholder="Insert Title" required="required" value="">

How can I achieve the same with the formRow view helper?

Answer

user2627106 picture user2627106 · Aug 3, 2013

If a form element does not have an "id" attribute, the label will wrap the input:

<label>Label<input /></label>

Otherwise:

<label for="test">Label</label><input id="test" />