单个文件中有多个symfony2表单类型模板?

时间:2014-08-26 16:40:31

标签: php forms symfony twig

我在Symfony2中创建了两个自定义表单类型及其各自的twig模板。阅读the documentation时,我注意到他们称之为“fields.html.twig”。这让我相信我可以在一个文件中定义多个块,但我似乎无法理解如何?这是我当前的fields.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 %}

1 个答案:

答案 0 :(得分:1)

如果您查看'vendor / symfony / symfony / bridge / Twig / resources / views / form /',您会注意到一个名为form_div_layout.html的文件在里面查看,您会注意到标准Symfony2表单的整个集合小部件包含在这里。所以,是的,您可以在模板文件中定义任意数量的块。虽然最好将事情分开一点。假设您有两种不同的样式用于依赖于表单的选择窗口小部件,您可能需要2个模板来定义这些样式。

您甚至可以将发运的整个模板复制到App / Resources / Views / Form / form_div_layout.html并直接在那里进行修改。但是,它可能会导致一个复杂且令人困惑的模板文件,其中包含许多不需要的块。