呼叫
时$em->remove($news);
我遇到了约束违规错误。
我有两个实体,新闻和图像。
在 News
中,我有3个对Image
的参考,例如:
/**
* @ORMOneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist"})
*/
private $cover;
/**
* @ORMOneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist"})
*/
private $img;
/**
* @ORMOneToMany(targetEntity="Image", mappedBy="news", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $gallery;
在Image
内部,我只提到这样的新闻,例如:
/**
* @var News
*
* @ORMManyToOne(targetEntity="News", inversedBy="gallery", cascade={"remove"})
*/
private $news;
我知道我在那里有一个约束,但由于这个原因,cascade = {" remove"} orm side在那里?
我在这里想念什么?如果我添加
* @ORMJoinColumn(onDelete="CASCADE")
对于许多人的关系,它的工作正常。我想知道是否以及如何有可能将其放在一边。
cascade={"remove"}
在 News
侧设置,就像您为$gallery
关联所做的那样。
/**
* @ORMOneToMany(targetEntity="Image", mappedBy="news", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $gallery;
对其他关联做同样的事情。
/**
* @ORMOneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $cover;
/**
* @ORMOneToOne(targetEntity="Image", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $img;
/**
* @ORMOneToMany(targetEntity="Image", mappedBy="news", orphanRemoval=true, cascade={"persist", "remove"})
*/
private $gallery;