具有前置滤波器的Symfony嵌入式控制器

时间:2016-06-21 12:13:39

标签: php symfony

我使用Symfony2并希望在我的侧边栏中检索最新的未读消息。所以我在这里的文档中使用了嵌入式控制器:

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

这一切都很好并且有效。问题现在是我还在每个控制器中使用前置过滤器来检查会话和一些权限。在这个eventlistener中,如果会话无效,我会重定向到登录页面。

我知道嵌入式控制器中无法进行重定向,这就是我收到错误的原因。所以知道如何处理这个问题。有没有办法从前过滤器中排除某些功能?

或者我是否必须为我想用作嵌入内容的所有功能制作新的控制器?

1 个答案:

答案 0 :(得分:0)

在您的监听器中,您应该能够检查请求是否为主,如doc中所述,如果不是,则不要返回RedirectResponse

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

    // Your other code here
}