Русская документация Symfony2 на SymfonyGuru

Дата последнего обновления: 2012-05-20.

Справочник функций Twig для работы с формами

Это справочное руководство содержит все функции Twig, доступные при отображении форм. Имеется несколько таких функций, каждая из которых отвечает за отображение своей части формы (метки, ошибки, виджеты и т.д.).

form_label(form.name, label, variables)

Отображает метку для данного поля. Опционально вы можете передать свой текст для метки в качестве второго аргумента.

{{ form_label(form.name) }}

{# Эти две формы записи эквивалентны #}
{{ form_label(form.name, 'Your Name', { 'attr': {'class': 'foo'} }) }}
{{ form_label(form.name, null, { 'label': 'Your name', 'attr': {'class': 'foo'} }) }}

form_errors(form.name)

Отображает ошибки для данного поля.

{{ form_errors(form.name) }}

{# отображает "глобальные" ошибки формы #}
{{ form_errors(form) }}

form_widget(form.name, variables)

Отображает HTML виджет для данного поля. Если вы используете этот хелпер для всей формы или набора полей, они будут полностью отображены.

{# отображает виджет и добавляет ему класс "foo" #}
{{ form_widget(form.name, { 'attr': {'class': 'foo'} }) }}

Второй аргумент form_widget - это массив переменных. Наиболее типичной из них является attr, который представляет собой мссив HTML-атрибутов, которые будут применены к HTML-виджету. В некоторых случаях, ряд типов полей также имеют другие опции, относящиеся к отображению шаблона. Эти опции описаны для каждого из таких типов полей.

form_row(form.name, variables)

Отображает “строку” для заданного поля, которая является комбинацией метки, ошибок и виджета.

{# отображаем строку, метку заменяем на "foo" #}
{{ form_row(form.name, { 'label': 'foo' }) }}

Второй аргумент form_row - это массив. Шаблоны, предоставляемые в Symfony позволяют изменять лишь метку, как, и показано в примере выше.

form_rest(form, variables)

Отображает все поля формы, которые ещё не были отображены. Хорошим подходом является всегда использовать этот хелпер в ваших формах для отображения скрытых полей, а также полей, которые вы могли случайно забыть.

{{ form_rest(form) }}

form_enctype(form)

Если поле содержит хоть одно поле для загрузки файла, этот хелпер отобразит атрибут формы enctype="multipart/form-data". Хорошей практикой является его использование во всех формах:

<form action="{{ path('form_submit') }}" method="post" {{ form_enctype(form) }}>