1

我想在 Symfony2 中处理输入数量不断变化的 POST 表单。此表单用于创建测验,因此用户可以根据需要为每个问题添加任意数量的问题和答案。

它基本上可以给出这样的东西,QuizQuestion并且Answer每个都是 Doctrine 实体:

- Quiz
  - Question 1
    - Answer 1.1
    - Answer 1.2
  - Question 2
    - Answer 2.1
    - Answer 2.2
    - Answer 2.3

对于其他东西,我使用“常规”方法来处理表单(Form根据实体和类型在控制器中创建一个对象,并使其处理Request),但这显然不适用于输入的数量可以变化。

在 Symfony2 中是否有适当的方法来处理此类请求,或者我是否必须遍历每个 POST 变量并一一验证它们?

4

2 回答 2

2

这实际上在 symfony2 文档中得到了很好的解释。

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

您在实体之间进行映射,绑定表单并使用一些 javascript(或其他方法)来使前端工作。

http://docs.doctrine-project.org/en/latest/reference/association-mapping.html可能会派上用场)

于 2013-08-19T12:48:23.677 回答
1

处理此问题的最佳方法是使用表单事件动态修改表单

然后,您可以构建您的表单,同时将其绑定到您的请求,以便它适合用户发送的内容的结构。(我已经做到了,并且工作正常)。

这一切都是为了将​​事件订阅者添加到您的表单类中。然后,您的事件订阅者应在适当的表单事件上构建您的表单(如果您需要在绑定时执行此操作,则在您的情况下为 BIND_CLIENT_DATA)。

深入了解部分文档

于 2013-08-19T12:58:02.913 回答