Symfony2

时间:2015-06-10 13:39:23

标签: forms symfony collections

我在Symfony2中遇到了一个很大的问题。让我解释一下情况:

我的客户提供一天课程,我正在构建一个应用程序,参与者可以注册特定课程。过程很简单:参与者登录,选择课程,选择日期并注册。

这涉及多个实体:

  1. 课程,~20个必需属性,OneToMany CourseDate
  2. CourseDate ,~1必需属性,OneToMany CoureDateParticipant
  3. CourseDateParticipant ,~20个属性,ManyToOne 参与者
  4. CourseDateParticipant 的属性与课程几乎相同,其中大多数仅用于覆盖课程的属性在某些情况下。因此大多数时候 CourseDateParticipants 属性的大多数都是 null

    在后端,我有一个表单,管理员可以立即添加和编辑整个课程。表格类似于实体I.e. CourseType ,其中包含 CourseDateType ,其集合为 CourseDateParticipantType

    一切都很好,除了大课程。 课程最多可包含 50 CourseDate CourseDate 最多可包含 1000 CourseDateParticipant 。每个属性都有自己的字段,因此对于这些数字,表单将包含50 * 1000 * 20 = 1.000.000字段。但是,大多数这些字段都是 null

    我已经做了一些Jquery魔术来使UI可用。添加课程时,只会提交已填写的字段。仅编辑时,会提交已更改的字段。

    但是当调用带有如此大数字的$ form-> createView()时,控制器会窒息(编辑时)。我正在考虑的一些解决方案:

    • 告诉客户将这么大的课程拆分成小的。 (不是我最喜欢的)
    • 不要在初始化时渲染 CourseDateParticpant ,但如果管理员点击按钮,则不知何故。可以是一个呈现所有内容的按钮,也可以是每个 CourseDateParticipant 的按钮。
    • CourseDateParticipant 中删除许多属性,并将异常保存在其他位置。

    你们有其他/更好的建议吗?

0 个答案:

没有答案