Русская документация Symfony2 на SymfonyGuru
Дата последнего обновления: 2012-05-20.
Дата последнего обновления: 2012-05-20.
Это справочное руководство содержит все функции Twig, доступные при отображении форм. Имеется несколько таких функций, каждая из которых отвечает за отображение своей части формы (метки, ошибки, виджеты и т.д.).
Отображает метку для данного поля. Опционально вы можете передать свой текст для метки в качестве второго аргумента.
{{ 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) }}
Отображает HTML виджет для данного поля. Если вы используете этот хелпер для всей формы или набора полей, они будут полностью отображены.
{# отображает виджет и добавляет ему класс "foo" #}
{{ form_widget(form.name, { 'attr': {'class': 'foo'} }) }}
Второй аргумент form_widget - это массив переменных. Наиболее типичной из них является attr, который представляет собой мссив HTML-атрибутов, которые будут применены к HTML-виджету. В некоторых случаях, ряд типов полей также имеют другие опции, относящиеся к отображению шаблона. Эти опции описаны для каждого из таких типов полей.
Отображает “строку” для заданного поля, которая является комбинацией метки, ошибок и виджета.
{# отображаем строку, метку заменяем на "foo" #}
{{ form_row(form.name, { 'label': 'foo' }) }}
Второй аргумент form_row - это массив. Шаблоны, предоставляемые в Symfony позволяют изменять лишь метку, как, и показано в примере выше.
Отображает все поля формы, которые ещё не были отображены. Хорошим подходом является всегда использовать этот хелпер в ваших формах для отображения скрытых полей, а также полей, которые вы могли случайно забыть.
{{ form_rest(form) }}
Если поле содержит хоть одно поле для загрузки файла, этот хелпер отобразит атрибут формы enctype="multipart/form-data". Хорошей практикой является его использование во всех формах:
<form action="{{ path('form_submit') }}" method="post" {{ form_enctype(form) }}>