当孩子是拥有方时,Doctrine Mongo级联移除孩子

时间:2013-12-04 13:11:18

标签: mongodb symfony doctrine-orm associations doctrine-odm

我有一个父/子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。

由于

1 个答案:

答案 0 :(得分:1)

在父类中?

class Parent
{
    /**
     * @var \Doctrine\Common\Collections\ArrayCollection
     * @ODM\ReferenceMany(targetDocument="Child", mappedBy="parent", cascade={"remove"})
     */
    protected $children;

    // ...
}

在我的项目中,cascade={'remove'}完美无缺,但它是父类中的注释,而不是我在帖子中看到的Child类。