2

私はDoctrine 2を初めて使用し、データベーステーブルの関係に関してはあまり得意ではありません. 多対 1、1 対多、1 対 1、多対多の関係がどのように機能するかを理解しています。doctrine 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

多対多の関係では、3 番目の forignkey テーブルへの参照を与える必要があります

だからこれを変える

/**
 *
 * @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 に答える