2015-03-08 25 views
1

显示特定领域,我需要的Symfony 2.6显示形式特定领域。我使用一个类表单。我有以下字段:姓名,电子邮件,消息,发送,接受。我需要显示所有的人除了recet。我尝试这样的:如何在形式的Symfony 2.6

    {{form_start(form)}} 
        {{ form_errors(form) }} 
        {{form_row(form.name)}} 
        {{form_row(form.email)}} 
        {{form_row(form.message)}} 
       {{form_end(form)}} 

但是,它显示在表单中的所有领域,这不是我想要的。即使我只留下{{form_start(form)}}{{form_end(form)}} - 其显示的所有字段。有人可以帮我解决这个问题吗?

回答

0

删除form_end,只需用HTML

</form> 

接近形式,但是,你必须通过添加处理CSRF令牌生成: {{form_widget(form._token)}}

{{ form_widget(form._token) }} 

或尝试设置领域,你不想显示使用:

{% do form.recet.setRendered %} 

但也许最好的方法未添加该字段摆在首位,而不是隐藏它,通过根据一些指标分析

+0

- 这是工作!非常感谢LPodolski! – YuriiChmil 2015-03-08 19:43:20

+1

直到你尝试发布它。然后csrf错误。 – Cerad 2015-03-08 20:08:34

0

一个更好的解决方案是从表单类型删除该字段表格选项或事件侦听器。如果您只从视图中删除它,则可能会将其解释为该字段的空白提交并删除现有数据。

如果你只在一个地方使用的形式,那么就从类型删除该字段。如果您在多个地方使用它,那么你可以选择删除在FormEvents::POST_SET_DATA事件侦听器领域。