我需要在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)}}
- 它也会显示所有字段。有人能帮助我解决这个问题吗?
答案 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
事件监听器中的字段。