2016-03-09 48 views

回答

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 FormEvents。 (doc)

+0

我希望在'form_row'某种开关的,但我怀疑这没有实现在Symfony ... –

+0

@GottliebNotschnabel实际上它是:),我更新了我的答案 – b3da

+0

不,我的意思是没有通过CSS隐藏它,而是将它作为一个隐藏字段。但我看到你的第二种方法允许这样做。万分感谢! –

2

您可以防止表单域的任何输出假装,它已经呈现:

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

很高兴知道。谢谢! –