如何使用symfony表单构建这种简单但复杂的表单

时间:2012-08-10 13:06:46

标签: php symfony doctrine-orm

我已经尝试了很多,但还没有找到解决这个问题的方法。我不确定这是否可能。

我有一个名为Student的表,然后是名为AssigmentSolutions

的表

现在,分配表中存在的问题对所有学生来说都很常见。但不同的学生会提交不同的解决方案。

在表单上,​​我希望将label作为问题文本,然后将文本框作为该问题的解决方案。

一开始我在数据库中有空答案。

我很困惑如何使用symfony构建此表单

如果所有解决方案都将通过一个提交按钮

下载到togetehr
Class AssignmentFormType{

$builder-> add('answer','collection' ....)

这个工作正常,但我想要的唯一的事情是将QuestionText显示为该答案的标签,我无法在1周内找到它

1 个答案:

答案 0 :(得分:1)

您要做的是根据您实体的信息动态创建表单元素(即设置label = $ entity-> getQuestion)

两种方法:

一个。动态表格

http://symfony.com/doc/master/cookbook/form/dynamic_form_generation.html

基本上涉及设置一个监听器,然后使用它来创建可以访问每个单独实体的表单元素。有点痛,但它有效。

B中。在表单模板内

由于您要做的只是更改标签,因此可能更容易将其设置在表单模板中。类似的东西:

{{ form_label(form.assignment, form.assignment.vars.value.question) }}

.data应该为您提供实际的分配实体,您可以从中提取问题。