Search code examples
zend-framework2zend-formzend-view

Display label before input using formRow view helper in Zf2


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?


Solution

  • 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" />