我有 2 个实体:Album 和 AlbumImages。我做了这样的注释:
Entity\Album
/**
*
* @var Collection
*
* @ORM\OneToMany(targetEntity="AlbumImages", mappedBy="album", cascade={"persist", "remove", "merge"}, orphanRemoval=true)
*/
protected $images;
Entity\AlbumImages
/**
*
* @var Album $album
*
* @ORM\ManyToOne(targetEntity="Album", inversedBy="images")
*/
protected $album;
它按预期工作。每个相册都有一组图像。如果我删除相册,所有图像也会被删除。
现在我尝试将 cove 添加到专辑中。封面可以是专辑图片之一。注释看起来像这样:
Entity\Album
/**
* @var Image $image
*
* @ORM\OneToOne(targetEntity="AlbumImages")
* @ORM\JoinColumn(name="image_id", referencedColumnName="id")
*/
protected $thumb;
结果,专辑现在有封面(实体\专辑图像),它工作正常,除了专辑的删除。
我收到以下错误:
An exception occurred while executing 'DELETE FROM album WHERE id = ?' with params [3]:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`fs2`.`album_images`, CONSTRAINT `FK_326483DD1137ABCF` FOREIGN KEY (`album_id`) REFERENCES `album` (`id`))
你能指出我哪里做错了吗?