2015-03-08 48 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事件偵聽器領域。