我有一个父/子OneToMany参考:
/**
* @ODM\Document
*/
class Parent
{
// ...
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @ODM\ReferenceMany(targetDocument="Child", mappedBy="parent")
*/
protected $children;
// ...
}
/**
* @ODM\Document
*/
class Child
{
// ...
/**
* @var Parent
* @ODM\ReferenceOne(targetDocument="Parent", inversedBy="children", orphanRemoval=true)
*/
protected $parent;
// ...
}
我想要的是当父母被移除时,他的所有孩子也应该被移除。 我在父注释上尝试了cascade = {“remove”}和orphanRemoval = true,但它似乎不起作用。
我想知道是否有自动执行此操作的选项,而无需编写LifeCycleEventListener。
由于
答案 0 :(得分:1)
在父类中?
class Parent
{
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @ODM\ReferenceMany(targetDocument="Child", mappedBy="parent", cascade={"remove"})
*/
protected $children;
// ...
}
在我的项目中,cascade={'remove'}
完美无缺,但它是父类中的注释,而不是我在帖子中看到的Child类。