当我使用这样的代码时:
form_widget(form)
它将容器放在每一行上,但也放在整个表单上,我使用两个主题文件:
{% block form_row %}
{% spaceless %}
<section>
{{ form_label(form) }}
{{ form_errors(form) }}
<div>
{{ form_widget(form) }}
</div>
</section>
{% endspaceless %}
{% endblock form_row %}
这一行在每一行都能正常工作,但是这个:
{% block form_widget %}
{% spaceless %}
{# <div {{ block('widget_container_attributes') }}> #}
{{ block('field_rows') }}
{{ form_rest(form) }}
{# </div> #}
{% endspaceless %}
{% endblock form_widget %}
不仅从表单中移除容器,还从每行移除容器。如何仅从表单中删除容器?
//编辑
我明白了:
<form method="post" action="/acme/web/app_dev.php/admin/users_management/3">
<label>Edit user</label>
<fieldset>
<input type="hidden" value="PUT" name="_method" />
<div id="acme_usersbundle_usertype">
<section>
<label class="required" for="acme_usersbundle_usertype_username">
Login
<span class="required"> </span>
</label>
<div>
<input id="acme_usersbundle_usertype_username" type="text" value="login" maxlength="255" required="required" name="acme_usersbundle_usertype[username]">
</div>
</section>
</div>
</fieldset>
</form>
我想得到(没有<div id="acme_usersbundle_usertype">
):
<form method="post" action="/acme/web/app_dev.php/admin/users_management/3">
<label>Edit user</label>
<fieldset>
<input type="hidden" value="PUT" name="_method">
<section>
<label class="required" for="acme_usersbundle_usertype_username">
Login
<span class="required"> </span>
</label>
<div>
<input id="acme_usersbundle_usertype_username" type="text" value="login" maxlength="255" required="required" name="acme_usersbundle_usertype[username]">
</div>
</section>
</fieldset>
</form>
使用后:
form_widget(form)
答案 0 :(得分:2)
要将行放入<section>
,您的方法是正确的。
{% block form_row %}
{% spaceless %}
<section>
{{ form_label(form) }}
{{ form_errors(form) }}
<div>
{{ form_widget(form) }}
</div>
</section>
{% endspaceless %}
{% endblock form_row %}
使用<fieldset>
代替<div
&gt;只需修改form_widget_compound
块而不是更多。甚至不是form_widget
{% block form_widget_compound %}
{% spaceless %}
<fieldset {{ block('widget_container_attributes') }}>
{% if form.parent is empty %}
{{ form_errors(form) }}
{% endif %}
{{ block('form_rows') }}
{{ form_rest(form) }}
</fieldset>
{% endspaceless %}
{% endblock form_widget_compound %}
这应该可以解决问题;)
在Twig中,所需的每个块都在一个模板文件(form_div_layout.html.twig)中定义,该文件位于Twig Bridge内。在此文件中,您可以看到呈现表单和每个默认字段类型所需的每个块。