【发布时间】:2014-04-22 19:19:01
【问题描述】:
我一直在尝试解决关于我在 Symfony2 (v2.3.9) 中使用三个实体设置的 Doctrine 配置的问题
假设我的应用程序的目标是管理某些人对不同培训课程的注册。我确实想将这些课程分成不同的组:A、B 和 C。
所以,我的实体是:
- 注册
- 课程
- 组
一个人可以报读多门课程,但不能报读不同组的同一门课。这意味着,有一些看起来像这样的表格:
-------------------------------------- |注册ID | course_id | group_id | -------------------------------------- | 1 | 1 | 1 | -------------------------------------- | 1 | 2 | 3 | --------------------------------------到目前为止,我已经能够在 Enrollment 实体和 Course 实体之间创建多对多关系。
Enrollment.php
...
/**
*
* @ORM\ManyToMany(targetEntity="Course", inversedBy="enrollments")
* @ORM\JoinTable(name="enrollment_course",
* joinColumns={@ORM\JoinColumn(name="enrollment_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="course_id", referencedColumnName="id")}
* )
*
*/
protected $courses;
.....
就关系而言,Course 实体看起来像这样:
Course.php
....
/**
*
* @ORM\ManyToMany(targetEntity="Enrollment", mappedBy="courses")
*/
protected $enrollments;
....
这使得配置不完整。
----------------------------------------- |注册ID | course_id | ----------------------------------------- | 1 | 1 | ----------------------------------------- | 1 | 2 | -----------------------------------------考虑到,为了完成注册,我需要课程和组的信息。我怎样才能把它翻译成 Doctrine 注释?
你有什么线索吗?
非常感谢您的帮助。
丹妮。
【问题讨论】:
-
您可能需要一个带有一些验证规则的自定义实体,而不是直接的数据库约束规则,这就是您暗示的学说注释将完成的。话虽如此,我不确定如何通过学说编写这样的表格。
标签: symfony doctrine-orm annotations many-to-many