我的Symfony2类中有2个实体:
class InstagramShopPicture
{
/**
* @Exclude()
* @ORM\OneToMany(targetEntity="InstagramPictureTag", mappedBy="picture", cascade={"remove"})
*/
protected $tags;
}
和
class InstagramPictureTag
{
/**
* @ORM\ManyToOne(targetEntity="InstagramShopPicture", inversedBy="tags")
* @ORM\JoinColumn(name="picture_id", referencedColumnName="id", nullable=false)
*/
private $picture;
}
我想确保当我删除InstagramShopPicture时,InstagramPictureTag也会被删除。现在的问题是,每当我尝试使用当前的设置时,它总是抱怨一些外键问题。我在这里做错了什么?
答案 0 :(得分:0)
您需要定义如何处理此删除。 Check Docs 在你的情况下:
class InstagramShopPicture
{
/**
* @Exclude()
* @ORM\OneToMany(targetEntity="InstagramPictureTag", mappedBy="picture", orphanRemoval=true)
*/
protected $tags;
}
答案 1 :(得分:0)
您可以依靠数据库级别来使用onDelete
为您处理它class InstagramShopPicture
{
/**
* @Exclude()
* @ORM\OneToMany(targetEntity="InstagramPictureTag", mappedBy="picture", onDelete="CASCADE")
*/
protected $tags;
}