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

时间:2016-03-09 18:03:44

标签: forms symfony hidden-field

我有一个包含两个TextType字段的Symfony表单。如果某个检查评估为false,我不想显示input字段,而是输出字段的静态内容,并将表单字段包含为hidden字段。我怎么能这样做?

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:6)

你可以使用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之类的FormEvent。 (doc)