src/EventSubscriber/SurveyResultSubscriber.php line 24

Open in your IDE?
  1. <?php
  2. namespace App\EventSubscriber;
  3. use App\Entity\SurveyResult;
  4. use Doctrine\ORM\EntityManagerInterface;
  5. use App\Event\SurveyResultPrePersistEvent;
  6. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  7. class SurveyResultSubscriber implements EventSubscriberInterface
  8. {
  9.     public function __construct(
  10.         private EntityManagerInterface $_em,
  11.     ) {
  12.     }
  13.     public static function getSubscribedEvents(): array
  14.     {
  15.         return [
  16.             SurveyResultPrePersistEvent::NAME => 'prePersist',
  17.         ];
  18.     }
  19.     public function prePersist(SurveyResultPrePersistEvent $event)
  20.     {
  21.         $object $event->getObject();
  22.         $user $object->getUser();
  23.         $surveyQuestion $object->getSurveyQuestion();
  24.         if ($user && $surveyQuestion) {
  25.             $this->_em->getRepository(SurveyResult::class)
  26.                 ->deleteByQuestionIds([$surveyQuestion->getId()], $user->getId());
  27.         }
  28.     }
  29. }