Package Home

Zend Framework 2 Documentation (Manual)

PHK Home

File: /modules/zend.form.view.helper.form-row.html

Size:12524
Storage flags:no_autoload,compress/gzip (29%)

FormRow — Zend Framework 2 2.4.2 documentation

FormRowΒΆ

The FormRow view helper is in turn used by Form view helper to render each row of a form, nevertheless it can be use stand-alone. A form row usually consists of the output produced by the helper specific to an input, plus its label and errors, if any.

FormRow handles different rendering options, having elements wrapped by the <label> HTML block by default, but also allowing to render them in separate blocks when the element has an id attribute specified, thus preserving browser usability features in any case.

Other options involve label positioning, escaping, toggling errors and using custom partial templates. Please check out Zend\Form\View\Helper\FormRow method API for more details.

Usage:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
 * inside view template
 *
 * @var \Zend\View\Renderer\PhpRenderer $this
 * @var \Zend\Form\Form $form
 */

// Prepare the form
$form->prepare();

// Render the opening tag
echo $this->form()->openTag($form);

/** @var \Zend\Form\Element\Text $element */
$element = $form->get('some_element');
$element->setLabel('Some Label');

// Render 'some_element' label, input, and errors if any
echo $this->formRow($element);
// i.e. <label><span>Some Label</span><input type="text" name="some_element" value=""></label>

// Altering label position
echo $this->formRow($element, 'append');
// i.e. <label><input type="text" name="some_element" value=""><span>Some Label</span></label>

// Setting the 'id' attribute will result in a separated label rather than a wrapping one
$element->setAttribute('id', 'element_id');
echo $this->formRow($element);
// i.e. <label for="element_id">Some Label</label><input type="text" name="some_element" id="element_id" value="">

// Turn off escaping for HTML labels
$element->setLabel('<abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>');
$element->setLabelOptions(array('disable_html_escape' => true));
// i.e.
// <label>
//   <span>
//       <abbr title="Completely Automated Public Turing test to tell Computers and Humans Apart">CAPTCHA</abbr>
//   </span>
//   <input type="text" name="some_element" value="">
// </label>

// Render the closing tag
echo $this->form()->closeTag();

Note

Label content is escaped by default

This Page

Note: You need to stay logged into your GitHub account to contribute to the documentation.

Edit this document

Edit this document

The source code of this file is hosted on GitHub. Everyone can update and fix errors in this document with few clicks - no downloads needed.

  1. Login with your GitHub account.
  2. Go to FormRow on GitHub.
  3. Edit file contents using GitHub's text editor in your web browser
  4. Fill in the Commit message text box at the end of the page telling why you did the changes. Press Propose file change button next to it when done.
  5. On Send a pull request page you don't need to fill in text anymore. Just press Send pull request button.
  6. Your changes are now queued for review under project's Pull requests tab on GitHub.

For more information about the PHK package format: http://phk.tekwire.net