【问题标题】:Customize form_row for different form types为不同的表单类型自定义 form_row
【发布时间】:2015-07-14 01:40:02
【问题描述】:

我想为不同的表单类型设置不同的 form_row 布局。我在名为“choice_widget_collapsed”的模板块中找到,但它只呈现带有选项的选择标签。

我找不到这个块在哪里被使用。实际上,它似乎是呈现而不是 form_widget 块。我想在某处 switch/if 结构可以检查表单类型并呈现适当的块,但我不知道在哪里可以找到这个开关,或者不知道如何检查 form_row 块中的输入类型。

我知道块类型可以在 form.vars.block_prefixes 数组中找到,但是这个 sux,因为它的位置将来可能会改变。

所以问题是:如何让 form_row 根据表单字段类型显示不同的内容?

【问题讨论】:

    标签: forms symfony twig


    【解决方案1】:

    你应该覆盖你的主题中的正常块。这个块应该像这样工作:

    {% block form_appropriate_block %}
        {% spaceless %}
            {% if form.vars.widget = 'myIntendedWidgetType' %}
                [yourTemplate]
            {% else %}
                {{ parent() }}
            {% endif %}
        {% endspaceless %}
    {% endblock form_appropriate_block %}
    

    然后,在您的模板中,使用以下命令激活您的主题:

    {% form_theme form 'MyBundle:Form:formTheme.html.twig' %}
    

    这样,您的表单主题仅在需要时使用,如果类型不是您想要的类型,它会退回到正常行为。

    【讨论】:

    • 这个不行,没有form.type这样的变量
    猜你喜欢
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多