如何以Symfony 2.6的形式显示特定字段

时间:2015-03-08 19:21:21

标签: forms symfony

我需要在Symfony 2.6中显示表单中的特定字段。我使用了一个表格。我有以下字段:姓名,电子邮件,消息,发送,接收。我需要显示所有这些除了recet。我试着这样:

                 {{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)}} - 它也会显示所有字段。有人能帮助我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

删除form_end,只需使用HTML

关闭表单
</form>

但是你必须通过添加以下内容来处理CSRF令牌: {{form_widget(form._token)}}

{{ form_widget(form._token) }}

或尝试设置您不想使用的字段:

{% do form.recet.setRendered %}

但最好的方法是不要首先添加此字段,而不是通过表单选项或事件侦听器隐藏它,具体取决于某些标准

答案 1 :(得分:0)

更好的解决方案是从表单类型中删除字段。如果仅从视图中删除它,则可能会将其解释为该字段的空白提交并删除现有数据。

如果您只在一个地方使用该表单,则只需从该类型中删除该字段即可。如果您在多个地方使用它,那么您可以有选择地删除FormEvents::POST_SET_DATA事件监听器中的字段。