Doctrine 2连接表+额外字段

wai*_*ani 19 field join jointable doctrine-orm

我有两个表和一个联接表:'staff','classification'和'staff_classification'.在连接表中,我有一个额外的布尔字段:'showclassification'.我的注释如下:

 /**
 * @ManyToMany(targetEntity="Staff", inversedBy="classifications")
 * @JoinTable(name="staff_classifications",
 *  joinColumns={@JoinColumn(name="staffid", referencedColumnName="id")},
 *  inverseJoinColumns={@JoinColumn(name="classificationid", referencedColumnName="id", unique=true)});
 */
Run Code Online (Sandbox Code Playgroud)
  1. 如何将额外字段"showclassifications"添加到连接表?
  2. 如何通过DQL引用该字段?例如,哪些查询可以获得允许显示的所有员工分类?
  3. 我是否将上述注释放在一个类中,将@ManyToMany注释放在另一个类中没有@joinTable?例如@ManyToMany(targetEntity ="Classification")?

tim*_*dev 32

您需要一个描述关系的实体(StaffClassifications),它与员工和分类具有OneToMany关系.

ManyToMany不允许您拥有任何"额外"属性,因为连接表不是实体,因此不能具有任何属性.

  • +1这是做事的合乎逻辑的OO方式.这个确切的问题在邮件列表中被大量提问,这也是Doctrine团队建议的内容. (3认同)