Доктрина каскада Монго удаляет детей, когда ребенок является собственником
У меня есть ссылка 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 ответ
Решение
А в родительском классе?
class Parent
{
/**
* @var \Doctrine\Common\Collections\ArrayCollection
* @ODM\ReferenceMany(targetDocument="Child", mappedBy="parent", cascade={"remove"})
*/
protected $children;
// ...
}
В моем проекте cascade={'remove'}
работает отлично, но это аннотация в родительском классе, а не в дочернем, как я вижу в вашем посте.