我正在使用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