致电
$em->remove($news);
我遇到了约束违规错误。
我有2个实体,新闻和图片。
在News
我有Image
的3个引用,如下所示:
/**
* @ORM\OneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist"})
*/
private $cover;
/**
* @ORM\OneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist"})
*/
private $img;
/**
* @ORM\OneToMany(targetEntity="Image", mappedBy="news", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $gallery;
在Image
里面我只提到了新闻,就像这样:
/**
* @var News
*
* @ORM\ManyToOne(targetEntity="News", inversedBy="gallery", cascade={"remove"})
*/
private $news;
我知道我有一个constrait跑到那里但不应该cascade = {“remove”} ORM方面是因为这个原因吗?
我在这里缺少什么?如果我添加
* @ORM\JoinColumn(onDelete="CASCADE")
到manyToOne关系,它只是工作正常。我想知道是否以及如何让它成为ORM方面。
答案 0 :(得分:0)
您cascade={"remove"}
方设置了News
,就像您对$gallery
关联一样。
/**
* @ORM\OneToMany(targetEntity="Image", mappedBy="news", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $gallery;
对其他协会也这样做。
/**
* @ORM\OneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $cover;
/**
* @ORM\OneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $img;
/**
* @ORM\OneToMany(targetEntity="Image", mappedBy="news", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $gallery;