【发布时间】:2016-03-09 18:03:43
【问题描述】:
我有一个包含两个 TextType 字段的 Symfony 表单。如果某个检查评估为false,我不想显示input 字段,而是输出字段的静态内容并将表单字段包含为hidden 字段。我该怎么做?
【问题讨论】:
标签: forms symfony hidden-field
我有一个包含两个 TextType 字段的 Symfony 表单。如果某个检查评估为false,我不想显示input 字段,而是输出字段的静态内容并将表单字段包含为hidden 字段。我该怎么做?
【问题讨论】:
标签: forms symfony hidden-field
您可以通过假装表单字段已被渲染来阻止任何输出:
{{ form_start(form) }}
{% if someValue == true %}
{% do form.fieldName.setRendered() %}
{% endif %}
{{ form_end(form) }}
【讨论】:
您可以使用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。
(doc)
【讨论】:
form_row 中进行某种切换,但我怀疑这在 Symfony 中没有实现...