2013-12-12 96 views
0

我試圖實現一個表單,顯示練習的列表,並在其中的每一個,登錄用戶輸入texte回答,我不需要嵌入形式,因爲我不會改變練習文本,我將只保存給定考試和用戶的每次練習的響應。Symfony2三元實體形式

在我的數據庫中,我有三個表:有許多exercices和表exercice和響應表具有以下字段(用戶,exercice,響應,日期)

請我堅持幫我考!

回答

0

您可以在顯示您的練習時插入一個表單,並將它們分別顯示出來,併爲此表單創建一個路由&控制器,但路由器/控制器將收到您的練習的標識或代碼作爲參數,以便當它保存響應時直接設置它的行使。

因此,您必須獲得Exercice & Reponse之間的ManyToOne關係。

只要告訴我,如果我不理解(我的英語很差)

+0

你的意思是在一個頁面中我應該爲每個練習使用多個表單?每個人都有一個動作功能? – ZeSoft

+0

每個練習都有一個表單創建,並且只創建一個動作函數,接收作爲參數的練習ID例如用於添加響應您發送的POST對此練習的響應 –

+0

我明白了你的觀點,除了我不喜歡認爲這是一個好主意,在控制器旁邊有很多形式,這將很難創建每個表單並將其添加到數組中,試圖找到一種方法將所有答案分組在一個表單中,感謝您的幫助 – ZeSoft

0

我THIK你必須動態地添加您的形式進入模板不是通過控制器發送,但各種形式的行動將是一個控制器路徑將您的YSE POST數據編輯exercice

route_name: 
    pattern: /patten/{id} #hier id is the id of the exercice 
    defaults: { _controller:.....:Response } 

ResponseAction(exercice $ê} { 在 此控制器,你得到這個職位,DATAS,你可以在 文章發表你的迴應

} 
Twig: 
{{ exercice.content }} {# an example #} 
{# a form that you will normaly generate will jQuery or another of your choice #} 
<form action="{{ path('route_name',{'id':exercice.id}) }}" method="POST"> 
     // 
     your fields ... 
    </form> 
+0

我有一個行動是當我們提交整個表單時的所有回覆,但在你的代碼中,就像我們將提交每個回覆分開,這不是我的情況 – ZeSoft

+0

啊好吧,我現在明白你的scnenario。但我認爲這樣會稍微複雜一些。您只需點擊提交按鈕即可創建一個Ajax請求,並將保存您的所有響應。 –