2

我对 Doctrine 2 很陌生,并且在数据库表关系方面不太好。我了解多对一、一对多、一对一和多对多关系的运作方式。我只是对使用教义 CLI 生成数据库表时遇到的这个错误感到困惑。

  [Doctrine\ORM\ORMException]
  Column name `id` referenced for relation from Kent\Entity\DoctorSpecialties towards Kent\Entity\Doctors does not exist.

请查看此 github 链接以查看我的实体。(Doctors.php & DoctorSpecialties.php)

https://github.com/aldee07/Doctor-Finder/tree/development-september/library/Kent/Entity

注意:我使用的是 Zend Framework 1.11.12

4

3 回答 3

0

在多对多关系中,您必须提供对第三个外键表的引用

所以改变这个

/**
 *
 * @var Doctors
 * @ManyToMany(targetEntity="Doctors", mappedBy="specialties")
 * @JoinTable(name="doctor_specialties")
 */
protected $doctors

希望这可以帮助

于 2012-09-09T00:15:34.123 回答
0

那是您必须在 DoctorSpecialties 类上添加的注释

@ManyToOne(targetEntity="Doctors")
@JoinColumn(name="doctor_id", referencedColumnName="doctor_id")
于 2012-09-08T13:43:14.377 回答
0

我认为你看这里更好: http ://www.doctrine-project.org/jira/browse/DDC-2646?page=com.atlassian.jira.plugin.system.issuetabpanels:changehistory-tabpanel

于 2013-09-26T15:13:14.073 回答