Doctrine orm doctrine2-删除所有onetomany关系
我有以下实体Doctrine orm doctrine2-删除所有onetomany关系,doctrine-orm,one-to-many,Doctrine Orm,One To Many,我有以下实体 专业的 时隙实体 我想删除给定专业人员的所有时间段,我尝试了 $professional->getTimeslots()->clear(); $em->persist($professional); $em->flush(); 这不会删除数据,如何删除给定专业人员的所有时隙?您可以使用->clear()来实现这一点,但您必须向专业人员实体添加一些代码 @ORM\OneToMany(targetEntity="UserBundle\Entity\Timesl
$professional->getTimeslots()->clear();
$em->persist($professional);
$em->flush();
这不会删除数据,如何删除给定专业人员的所有时隙?您可以使用
->clear()
来实现这一点,但您必须向专业人员
实体添加一些代码
@ORM\OneToMany(targetEntity="UserBundle\Entity\Timeslot", mappedBy="professional", cascade={"merge", "persist"}, orphanRemoval=true)
$professional->getTimeslots()->clear();
$professional = $em->merge($professional);
$em->flush();
希望它有帮助您可以通过
->clear()
实现这一点,但您必须向您的Professional
实体添加一些代码
@ORM\OneToMany(targetEntity="UserBundle\Entity\Timeslot", mappedBy="professional", cascade={"merge", "persist"}, orphanRemoval=true)
$professional->getTimeslots()->clear();
$professional = $em->merge($professional);
$em->flush();
希望它有帮助我推荐一个
存储库
函数,它允许使用它。在您的情况下,您没有清除关系的拥有方。需要对Professional::timeSlots属性进行级联删除。至少可以说,层叠的东西是很棘手的。在Timeslot::professional上使用cascade属性没有什么意义。我建议使用存储库函数来允许它。在您的情况下,您没有清除关系的拥有方。需要对Professional::timeSlots属性进行级联删除。至少可以说,层叠的东西是很棘手的。在Timeslot::professional上拥有cascade属性没有什么意义。