src/EventListener/UniqueConstraintViolationListener.php line 11

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
  4. use Symfony\Component\HttpFoundation\JsonResponse;
  5. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  6. class UniqueConstraintViolationListener
  7. {
  8.     public function onKernelException(ExceptionEvent $event): void
  9.     {
  10.         $throwable $event->getThrowable();
  11.         if ($throwable instanceof UniqueConstraintViolationException) {
  12.             // Créez ici le message d'erreur que vous voulez retourner au front
  13.             $message 'error.email_already_exists';
  14.             // On peut générer une 400 Bad Request
  15.             $response = new JsonResponse(['error' => $message], 400);
  16.             // Et on "remplace" la réponse
  17.             $event->setResponse($response);
  18.         }
  19.     }
  20. }