2016-06-21 2 views
0

Я использую Symfony2 и хочу получить самые свежие непрочитанные сообщения на боковой панели. Поэтому я использовал встроенный контроллер, как в документации здесь:Symfony встроенный контроллер с до фильтра

https://symfony.com/doc/current/book/templating.html#embedding-controllers

Это все прекрасные и рабочие. Проблема в том, что я также использую фильтр перед каждым контроллером для проверки сеанса и некоторых прав. В этом eventlistener я делаю перенаправление на страницу входа, если сеанс недействителен.

Я знаю, что перенаправление невозможно во встроенном контроллере, и поэтому я получаю сообщение об ошибке. Так что знаю мой вопрос, как справиться с этим. Есть ли способ исключить некоторые функции из фильтра before?

Или мне нужно создать новый контроллер для всех функций, которые я хочу использовать в качестве встроенного содержимого?

+0

попробовать применить «перед фильтром «только по основному запросу – pooler

ответ

0

В прослушивателе вы должны быть в состоянии проверить, если запрос мастер, как описано в doc, и если это не так, просто не возвращают RedirectResponse:

public function onKernelRequest(GetResponseEvent $event) 
{ 
    if (!$event->isMasterRequest()) { 
     return; 
    } 

    // Your other code here 
} 
Смежные вопросы