我試圖實現一個表單,顯示練習的列表,並在其中的每一個,登錄用戶輸入texte回答,我不需要嵌入形式,因爲我不會改變練習文本,我將只保存給定考試和用戶的每次練習的響應。Symfony2三元實體形式
在我的數據庫中,我有三個表:有許多exercices和表exercice和響應表具有以下字段(用戶,exercice,響應,日期)
請我堅持幫我考!
我試圖實現一個表單,顯示練習的列表,並在其中的每一個,登錄用戶輸入texte回答,我不需要嵌入形式,因爲我不會改變練習文本,我將只保存給定考試和用戶的每次練習的響應。Symfony2三元實體形式
在我的數據庫中,我有三個表:有許多exercices和表exercice和響應表具有以下字段(用戶,exercice,響應,日期)
請我堅持幫我考!
您可以在顯示您的練習時插入一個表單,並將它們分別顯示出來,併爲此表單創建一個路由&控制器,但路由器/控制器將收到您的練習的標識或代碼作爲參數,以便當它保存響應時直接設置它的行使。
因此,您必須獲得Exercice & Reponse之間的ManyToOne關係。
只要告訴我,如果我不理解(我的英語很差)
我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>
我有一個行動是當我們提交整個表單時的所有回覆,但在你的代碼中,就像我們將提交每個回覆分開,這不是我的情況 – ZeSoft
啊好吧,我現在明白你的scnenario。但我認爲這樣會稍微複雜一些。您只需點擊提交按鈕即可創建一個Ajax請求,並將保存您的所有響應。 –
你的意思是在一個頁面中我應該爲每個練習使用多個表單?每個人都有一個動作功能? – ZeSoft
每個練習都有一個表單創建,並且只創建一個動作函數,接收作爲參數的練習ID例如用於添加響應您發送的POST對此練習的響應 –
我明白了你的觀點,除了我不喜歡認爲這是一個好主意,在控制器旁邊有很多形式,這將很難創建每個表單並將其添加到數組中,試圖找到一種方法將所有答案分組在一個表單中,感謝您的幫助 – ZeSoft