Tag: model

php – Doctrine2:在参考表中使用额外列处理多对多的最佳方法

我想知道在Doctrine2中使用多对多关系的最好,最干净,最简单的方法是什么。 让我们假设我们有一张专辑,如Metallica的Master of Puppets,有几首曲目。但请注意,一首曲目可能出现在一张专辑中,例如Battery by Metallica所做的 – 三张专辑正在播放这首专辑。 所以我需要的是专辑和曲目之间的多对多关系,使用第三个表和一些额外的列(比如指定专辑中曲目的位置)。实际上,我必须使用,如Doctrine的文档所示,实现该功能的双重一对多关系。 /** @Entity() */ class Album { /** @Id @Column(type="integer") */ protected $id; /** @Column() */ protected $title; /** @OneToMany(targetEntity="AlbumTrackReference", mappedBy="album") */ protected $tracklist; public function __construct() { $this->tracklist = new \Doctrine\Common\Collections\ArrayCollection(); } public function getTitle() { return $this->title; } public function getTracklist() { return $this->tracklist->toArray(); } }