From fee48b7a9958b6f3bea48cf4b93d7446e85eca17 Mon Sep 17 00:00:00 2001 From: Jeroen De Meerleer Date: Wed, 18 May 2022 11:12:35 +0200 Subject: [PATCH] ENHANCEMENT: Deleting with doctrine --- src/Entity/Job.php | 2 +- src/Repository/JobRepository.php | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Entity/Job.php b/src/Entity/Job.php index 4988ac5..95fb4d4 100644 --- a/src/Entity/Job.php +++ b/src/Entity/Job.php @@ -57,7 +57,7 @@ class Job /** * @var Collection */ - #[ORM\OneToMany(targetEntity: "App\Entity\Run", mappedBy: "job")] + #[ORM\OneToMany(targetEntity: "App\Entity\Run", mappedBy: "job", cascade: ["remove"])] private Collection $runs; public function __construct() diff --git a/src/Repository/JobRepository.php b/src/Repository/JobRepository.php index 23777fe..208c110 100644 --- a/src/Repository/JobRepository.php +++ b/src/Repository/JobRepository.php @@ -9,7 +9,6 @@ use App\Entity\Run; use App\Service\Secret; use DateTime; use Doctrine\ORM\EntityRepository; -use Doctrine\ORM\Query; use GuzzleHttp\Client; use GuzzleHttp\Exception\GuzzleException; use phpseclib3\Crypt\PublicKeyLoader; @@ -673,8 +672,11 @@ class JobRepository extends EntityRepository public function deleteJob(int $id) { - $this->getEntityManager()->getConnection()->prepare("DELETE FROM job WHERE id = :id")->executeStatement([':id' => $id]); - $this->getEntityManager()->getConnection()->prepare("DELETE FROM run WHERE job_id = :id")->executeStatement([':id' => $id]); + $em = $this->getEntityManager(); + + $job = $this->find($id); + $em->remove($job); + $em->flush(); return ['success' => true, 'message' => 'Cronjob succesfully deleted']; }