如何在Symfony 2中设置一个或多个不同的form_row模板?

时间:2013-02-16 17:43:19

标签: forms symfony twig symfony-2.1

我在Symfony2中有一个项目,我有很多不同的形式可以做很多不同的事情,我现在正在努力解决的一个问题是如何设置两个不同的模板来处理form_rows。

我在fiels.html.twig文件中指定了一个form_row模板,该文件处理表单行,如下所示:

{% block form_row %}
    {% spaceless %}
        <div class="form-element{% if errors %} form-element-error{% endif %} widget-group clearfix">
            <div class="widget widget-1-of-3">
                {{ form_label(form) }}
            </div>
            <div class="widget widget-2-of-3">
                {{ form_widget(form) }}
                {% if errors %}
                    <small>{{ form_errors(form) }}</small>
                {% else %}
                    {% if help is defined %}
                        <small>{{ help }}</small>
                    {% endif %}
                {% endif %}
            </div>
        </div>
    {% endspaceless %}
{% endblock form_row %}

对于一般表单,这对我来说很有用,但是我在表格中也有很多表单元素。这通常用于我正在更新的表格数据组。

在这种情况下,我希望能够使用不同的form_rows模板进行指定。

我知道我可以通过字段名称或组来指定行,但我有很多,我只是想要一种更通用的方法。

有谁知道如何实现这一目标。

1 个答案:

答案 0 :(得分:2)

您可以在不同的模板中定义很多表单主题。 只需在您想要使用主题的顶部添加您的twig文件:

{% form_theme form 'AcmeDemoBundle:Form:fields.html.twig' %}

{{ form_widget(form) }}

其中form_theme文件可以是具有主题定义的任何twig文件。 现在,窗体小部件以附加主题装饰。