From 848e6b022cc78507962361fd96f2bf988adba811 Mon Sep 17 00:00:00 2001 From: Vassyli Date: Sun, 12 Mar 2017 19:39:44 +0100 Subject: [PATCH] Fixs a weird bug causing the deletion of scens to NOT cascade, despite passing tests. --- src/Models/Scene.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/src/Models/Scene.php b/src/Models/Scene.php index 182c47a..c4e0732 100644 --- a/src/Models/Scene.php +++ b/src/Models/Scene.php @@ -5,12 +5,12 @@ namespace LotGD\Core\Models; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; +use Doctrine\ORM\EntityManager; use Doctrine\ORM\Mapping\Entity; use Doctrine\ORM\Mapping\Table; use LotGD\Core\Exceptions\ArgumentException; use LotGD\Core\Tools\Model\Creator; -use LotGD\Core\Tools\Model\Deletor; use LotGD\Core\Tools\Model\SceneBasics; /** @@ -23,7 +23,6 @@ use LotGD\Core\Tools\Model\SceneBasics; class Scene implements CreateableInterface, SceneConnectable { use Creator; - use Deletor; use SceneBasics; /** @Id @Column(type="integer") @GeneratedValue */ @@ -289,4 +288,27 @@ class Scene implements CreateableInterface, SceneConnectable return $connection; } + + /** + * Deletes this entity and all connected children. + * + * This is a fix to a weird bug causing the deletion to NOT cascade, despite the tests passing. + * @param EntityManager $em + */ + public function delete(EntityManager $em) + { + // Delete connections + $connections = $this->getConnections(); + foreach ($connections as $connection) { + $em->remove($connection); + } + + // Delete connection groups + foreach ($this->connectionGroups as $group) { + $em->remove($group); + } + + $em->remove($this); + $em->flush(); + } }