У меня есть 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