这是我的抽象类型代码:
$builder->add('email', 'email', array('label' => 'form.email', 'translation_domain' => 'FOSUserBundle'))
上面生成的代码:
<form class="fos_user_registration_register form-horizontal" role="form" method="POST" action="/app_dev.php/register/">
<div id="fos_user_registration_form">
<div>
<label class="required" for="fos_user_registration_form_email">Email: </label>
<input id="fos_user_registration_form_email" type="email" required="required" name="fos_user_registration_form[email]">
</div>
</div>
</form>
</div>
我的问题是如何将类属性添加到行 div 成为:
<div class="form-group">
<label class="required" for="fos_user_registration_form_email">Email: </label>
<input id="fos_user_registration_form_email" type="email" required="required" name="fos_user_registration_form[email]">
</div>
最佳答案
Symfony2/Twig 有一个很棒的表单渲染引擎;完全覆盖它是一种浪费。作为一个更优雅的选择,我们可以利用内置的表单主题。根据文档:
Symfony comes with four built-in form themes that define each and every fragment needed to render every part of a form
我们可以覆盖默认主题并创建自己的主题。这允许我们覆盖 form_row
block ,并将我们自己可爱的属性添加到周围的 div
。只需将其放入一个文件中,比如:views/forms/fields.twig。
{% block form_row %}
<div class="form-group">
{{ form_label(form) }}
{{ form_errors(form) }}
{{ form_widget(form) }}
</div>
{% endblock %}
我们不需要担心其他声明,因为 Symfony 只会重载更改的内容。
我们现在可以从页面模板中引用它。将 form
替换为传递给模板的表单变量的名称:
{% form_theme form 'forms/fields.twig' %}
当然,您可以自由添加声明来获取表单属性,而不是对类名进行硬编码。
(来源:http://symfony.com/doc/2.7/cookbook/form/form_customization.html)
关于css - 将类属性添加到 symfony 表单生成器行 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25719369/