我有关于表单的多个问题
第一个问题,如何在表单构建器中使用div(带有类)包装输入?
所以我想包装这个提交输入:
->add('Submit', 'submit', array(
'attr' => array(
'class' => 'btn btn-success'
),
))
要获得此结果:
<div class="col-sm-offset-2 col-sm-10">
<input type="submit" class="btn btn-success"/>
</div>
第二个问题,如何通过表单构建器将模板设置为表单?
在我的错误示例中是否有类似的方法?或者不是?
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->setTemplate('::vertical-form.html.twig')
->add(...)
}
最后一个问题,如何在自定义表单模板中向表单元素添加类?
我从 form_div_layout.html.twig 中获取这段代码,然后将类(第9行)添加到表单元素中。但是它不起作用,我在视图中看不到这个元素!
{% block form_start %}
{% spaceless %}
{% set method = method|upper %}
{% if method in ["GET", "POST"] %}
{% set form_method = method %}
{% else %}
{% set form_method = "POST" %}
{% endif %}
<form class="form-horizontal" role="form" name="{{ form.vars.name }}" 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 %}
{% endspaceless %}
{% endblock form_start %}
在我的观点中,我只使用那段代码来呈现表单:
{% form_theme form '::custom-form.html.twig' %}
{{ form(form_name) }}
也许我应该将所有 form_div_layout.html.twig 文件复制到另一个模板并调整我需要的内容?
提前感谢您的帮助!
答案 0 :(得分:1)
在我看来,在这种情况下,您应该在模板中手动创建提交按钮(而不是通过表单类)
我不知道这样的解决方案。
您应该复制所有文件内容。 读这个: http://symfony.com/doc/current/cookbook/form/form_customization.html