src/EventListener/ExceptionListener.php line 20

Open in your IDE?
  1. <?php
  2. namespace App\EventListener;
  3. use Symfony\Component\HttpKernel\Event\ExceptionEvent;
  4. use Symfony\Component\HttpFoundation\Response;
  5. use Symfony\Component\Routing\RouterInterface;
  6. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  7. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  8. class ExceptionListener extends AbstractController
  9. {
  10.     private RouterInterface $router;
  11.     public function __construct(RouterInterface $router)
  12.     {
  13.         $this->router $router;
  14.     }
  15.     public function onKernelException(ExceptionEvent $event)
  16.     {
  17.         $exception $event->getThrowable();
  18.         // Si es un error 404, redirigir a la página personalizada
  19.         if ($exception instanceof NotFoundHttpException) {
  20.             $response $this->redirectToRoute('error_404');
  21.             $event->setResponse($response);
  22.         } else {
  23.             // Para cualquier otro error, redirigir a la página de error genérica
  24.             $response $this->redirectToRoute('error_general');
  25.             $event->setResponse($response);
  26.         }
  27.     }
  28. }