在单个文件中包含多个symfony2表单类型模板


Multiple symfony2 form type templates in a single file?

我在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中,并直接在那里进行修改。然而,它可能会导致一个复杂和令人困惑的模板文件,其中有许多不需要的块。