我在Symfony2和它们各自的分支模板中创建了两个自定义表单类型。在阅读文档时,我注意到他们称这个小枝为"fields.html.twig"。这让我相信我可以在一个文件中定义多个块,但我似乎不明白如何定义。这是我当前的字段。html.twig文件:
{% block open_range_widget %}
<div class="open_range_widget" style="display: inline;">
<div class="field" style="display: inline;">
{{ form_errors(form.sel) }}
{{ form_widget(form.sel) }}
</div>
<div class="field" style="display: inline;">
{{ form_errors(form.val) }}
{{ form_widget(form.val) }}
</div>
</div>
{% endblock %}
{% block range_widget %}
<div class="range_widget" >
<div class="field" style="display: inline; width: 50%">
{{ form_errors(form.min) }}
{{ form_widget(form.min) }}
</div>
<div class="field" style="display: inline; width: 50%">
{{ form_errors(form.max) }}
{{ form_widget(form.max) }}
</div>
</div>
{% endblock %}
如果您查看'vendor/symfony/symfony/bridge/Twig/resources/views/form/',您会注意到一个名为form_div_layout.html的文件,您会注意到这里包含了标准Symfony2表单小部件的整个集合。因此,是的,您可以在模板文件中定义任意数量的块。不过最好还是把事情分开一点。假设你有两个不同的样式的选择小部件依赖于表单,你需要两个模板来定义它们。
你甚至可以将整个模板复制到App/Resources/Views/Form/form_div_layout.html中,并直接在那里进行修改。然而,它可能会导致一个复杂和令人困惑的模板文件,其中有许多不需要的块。