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