我正在使用Symfony 2.1。我想根据用户是否登录设置重定向例程。我检查它的方式是$User->isLoggedIn()
其中User
是一项服务。根据用户状态重定向到不同的操作
我想在控制器执行之前执行此操作。在Controller执行之前,我几乎没有其他事情发生。我使用kernel.event_listener
的事件:kernel.controller
来做那些事情。但是我意识到我无法使用此事件重定向到URL。
我知道我需要使用kernel.event_listener的kernel.request事件来重定向到一个URL。
问题。 我使用以下逻辑来判断我是否需要重定向。
if (!$controller[0] instanceof NoLogInNeededInterface) {
if (!$User->isLoggedIn()) {
//redirect here
}
}
所以,在kernel.request
事件,$controler[0]
不可用。在kernel.controller
事件中,响应无法设置(将被忽略)。
有没有人得到同样的问题,并解决了。或者有没有更好的办法,我正在做什么?
作为小提示:如果您从一个新项目开始,请使用Symfony2.2。 Symfony 2.0不再维护 – 2013-03-18 21:38:02
谢谢。其实有2.1。我将编辑。 – Webghost 2013-03-18 21:49:17