如何在树枝模板中隐藏表单域?

问题描述 投票:0回答:3

我有一个包含两个

TextType
字段的 Symfony 表单。如果某个检查的计算结果为
false
,我不想显示
input
字段,而是输出该字段的静态内容,并将表单字段包含为
hidden
字段。我该怎么做?

forms symfony hidden-field
3个回答
20
投票

您可以通过假装它已经呈现来阻止表单字段的任何输出:

{{ form_start(form) }}
    {% if someValue == true %}
        {% do form.fieldName.setRendered() %}
    {% endif %}
{{ form_end(form) }}

14
投票

你可以使用

HiddenType
, 或隐藏模板中的字段:

{{ form_start(form) }}
    {% if someValue == true %}
        {{ form_widget(form.fieldName) }}
    {% else %}
        {{ form_widget(form.fieldName, { 'attr': {'class': 'hidden-row'} }) }}
    {% endif %}
    {# other fields... #}
{{ form_end(form) }}

或者您可以在 FormType 中使用像

FormEvents::PRE_SET_DATA
这样的 FormEvents。 (文档)


0
投票

你可以设置 div

<div id="" style="display: none;">
,如果你使用 symfony 4.4。希望我的回答能帮到你

© www.soinside.com 2019 - 2024. All rights reserved.