2013-12-12 58 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请求,并将保存您的所有响应。 –