为表单标记添加类
我做了这样的表格
$form = $this->createFormBuilder()
->add('name')
->add('tel')
->add('save','submit')
->getForm();
index.html.twig中的
{{ form_start(form)}}
{{ form_rest(form)}}
{{ form_end(form)}}
通常效果很好
但有时我想添加类来形成标签 像这样
<form class=“niceform”>
<button type="submit" class="btn btn-primary">
我怎么能通过formbuilder和twig模板来做这类事情?
答案 0 :(得分:3)
通过Doc:http://symfony.com/doc/current/reference/forms/twig_reference.html#form-widget-view-variables
{# render a widget, but add a "foo" class to it #}
{{ form_widget(form.name, {'attr': {'class': 'foo'}}) }}
答案 1 :(得分:1)
或者,如果你不喜欢在Twig中做这些事情,你也可以在php中将你的formbuilder添加到这个类中。
$form = $this->createFormBuilder()
->add('name', 'text', array(
'attr' => array(
'class' => 'foo'
)
))
->add('tel')
->add('save','submit')
->getForm();
答案 2 :(得分:0)
如果要将类foo添加到表单元素(标记),则可以使用语法:
{{ form(form, { 'attr': {'class': 'foo'} }) }}
如果您想对您网站中的所有表单执行此操作,则最好使用Form themig。查看文件form_div_layout.html.twig。在这里你可以看到小部件。找到{%block form_start%}并将类添加到表单元素
{# your twig file #}
{% form_theme form _self %}
{% block form_start -%}
{% set method = method|upper %}
{%- if method in ["GET", "POST"] -%}
{% set form_method = method %}
{%- else -%}
{% set form_method = "POST" %}
{%- endif -%}
<form name="{{ name }}" class="myclass" method="{{ form_method|lower }}" action="{{ action }}"{% for attrname, attrvalue in attr %} {{ attrname }}="{{ attrvalue }}"{% endfor %}{% if multipart %} enctype="multipart/form-data"{% endif %}>
{%- if form_method != method -%}
<input type="hidden" name="_method" value="{{ method }}" />
{%- endif -%}
{%- endblock form_start %}
更好的选择是在单独的文件中使用模板。 http://symfony.com/doc/current/cookbook/form/form_customization.html#form-theming