Symfony: EventSubscriber - игнорировать маршруты JS - PullRequest
0 голосов
/ 24 мая 2019

У меня есть EventSubscriber, который проверяет данные перед передачей в действие.

В этом классе я использую метод, чтобы проверить, является ли запрошенный маршрут правильным маршрутом или нет; этот тест основан на значении переменной в Session ($session['recordStatus']).

В этом тесте я хочу исключить / игнорировать маршруты JS, используемые функциями AJAX (например, record_detail_ajax).

Это то, что я сделал, но без успеха!

class TokenSubscriber implements EventSubscriberInterface
{
   public function onKernelController(FilterControllerEvent $event)
   {
      $requestedRoute = $event->getRequest()->attributes->get('_route');
      if ( !preg_match( '/ajax/', $requestedRoute )) {

          // Another function that returns the right route according to the recordStatus
          $this->redirectionCheck = $this->checkRedirection( $sessionUid, $token );

          if ($requestedRoute != $this->redirectionCheck['route'] && !preg_match( '/ajax/', $requestedRoute )) {
              $event->setController( function () {
                   return new RedirectResponse( $this->redirectionCheck['redirection'] );
              } );
          }

      }
   }
}

Я использую FosJS для маршрутизации JS.

С этим кодом я всегда получаю эту ошибку:

Ошибка: маршрут "record_detail_ajax" не существует. router.js: 243: 27

getRoute http://my_app.com/bundles/fosjsrouting/js/router.js:243

генерировать http://my_app.com/bundles/fosjsrouting/js/router.js:266

http://my_app.com/assets/js/record/record.ajax.js:70 JQuery 2

...