我目前正在尝试使用Doctrine2的POPO Annotations来映射音乐相关数据。
我没有遇到任何其他多对多关系的问题,但是一个特定的关系给了我麻烦。它不会抛出错误,但映射不会插入到映射表(artist_album
)
艺术家:
<?php
/**
* @orm:Entity
* @orm:Table(name="artist")
*/
class Artist
{
...
/**
* @orm:ManyToMany(targetEntity="Company\MusicBundle\Entity\Album", inversedBy="artists", cascade={"persist"})
* @orm:JoinTable(name="artist_album",
* joinColumns={@orm:JoinColumn(name="artist_id", referencedColumnName="id")},
* inverseJoinColumns={@orm:JoinColumn(name="album_id", referencedColumnName="id")})
*
* @var ArrayCollection
*/
private $albums;
...
}
相册
....
/**
* @orm:ManyToMany(targetEntity="Company\MusicBundle\Entity\Artist", mappedBy="albums", cascade={"persist"})
*
* @var ArrayCollection
*/
private $artists;
...
}
我确定这只是我在映射中做错的事情,但我不能把我的谚语放在它上面。
答案 0 :(得分:0)
我的问题是我把艺术家置于关系的反面。看来你必须在拥有方(在这种情况下,艺术家)设置关系。