我需要根據引導文件中的某些條件重定向。
它是在前端控制器和路由被定義之後完成的。
我該怎麼做?
(我知道我可以簡單地用頭('位置:....)問題是我需要使用路由器來構建URL有沒有辦法在Zend Framework中從引導中重定向瀏覽器?
2
A
回答
3
一年多後,我在ZF編程,我爲您的問題得到了這個解決方案。 這是我的bootstrap函數,它決定了用戶登錄的位置。
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected $_front;
(...)
protected function _initViewController()
{
(...)
$this->bootstrap('FrontController');
$this->_front = $this->getResource('FrontController');
(...)
}
protected function _initLogado()
{
$router = $this->_front->getRouter();
$req = new Zend_Controller_Request_Http();
$router->route($req);
$module = $req->getModuleName();
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$this->_view->logado = (array) $auth->getIdentity();
} else {
$this->_view->logado = NULL;
if ($module == 'admin') {
$response = new Zend_Controller_Response_Http();
$response->setRedirect('/');
$this->_front->setResponse($response);
}
}
}
}
0
最好的辦法可能是一個Controller Plugin
可以。添加一個在路由發生後調用的routeShutdown()鉤子,但是在你的控制器被調用的action方法之前,你可以在這個插件中檢查請求數據,或者在ACL中查找權限,或者只是隨機重定向你想要什麼!
選擇是你的!
編輯:重新讀你的問題,它看起來像你甚至沒有興趣的路線 - 使用routeStartup()作爲引導後注入代碼後的最早點。
0
我會抓住從前端控制器,路由器並調用其assemble()
方法,然後使用header()
:)
問候,
搶...
0
您可以檢查「routeShutdown條件「方法在插件,然後使用$ this-> actionController - > _ helper-> redirector()來重定向;)
2
重定向其實它不應該在引導文件...這將是調試編碼器的一個可怕的夜晚是最終套牢你的代碼幾年內。
使用前控制器插件,動作控制器插件或在您的動作控制器中執行此操作。最終這樣的重定向應該完全避免...
相關問題
- 1. 有沒有辦法從java applet中讀取瀏覽器的cookie?
- 2. 如果舊瀏覽器如何重定向Zend Framework 2?
- 3. 有沒有辦法在每個瀏覽器中啓用彈出
- 4. 有沒有辦法在現代瀏覽器中獲取CSS XSS?
- 5. 有沒有辦法找到瀏覽器的渲染引擎?
- 6. 在Zend Framework中重複引導
- 7. 有沒有辦法阻止瀏覽器發送特定的cookie?
- 8. Zend Framework:從控制器插件重定向更有效
- 9. 有什麼辦法在Zend Framework中使用多於1個引導類?
- 10. 有沒有辦法從Python中的瀏覽器中獲取當前的HTML?
- 11. 有沒有辦法在PHP中重定向輸出?
- 12. Zend引導重定向
- 13. 有沒有辦法阻止廣告導致頁面重定向?
- 14. Codenameone:有沒有辦法如何將用戶從瀏覽器重定向到應用程序
- 15. 有沒有辦法從Zend-framework的查詢中獲取記錄的數量?
- 16. 如何與htaccess的重定向沒有在瀏覽器
- 17. 有沒有什麼辦法阻止瀏覽器頁面滾動瀏覽器
- 18. 有沒有辦法在WP7上插入IE瀏覽器?
- 19. 有沒有辦法在瀏覽器中捕獲所有鍵盤輸入?
- 20. 在Zend Framework中確定瀏覽器語言?
- 21. 有沒有辦法從瀏覽器中選擇輸出視頻設備?
- 22. 有沒有辦法在iOS中使用Photos Framework鎖定照片?
- 23. 在沒有模板的情況下在Zend Framework 2中進行重定向
- 24. 有沒有辦法讓瀏覽器擁有登錄憑證?
- 25. Zend Framework 2模塊重定向頁面沒有正確重定向
- 26. 有沒有辦法將stderr重定向到Jupyter中的文件?
- 27. 有什麼辦法來檢查瀏覽器中的重寫URL
- 28. 谷歌分析:有沒有辦法重新瀏覽頁面
- 29. 有沒有辦法在Spring攔截器中檢查HttpResponse是否是重定向?
- 30. Zend Framework在前端控制器插件重定向導致重定向循環
我實際上在發佈之前嘗試過。沒有工作出於某種原因(沒有價值的地方)。在使用匯編方法之前,我必須在路由器中初始化一些東西嗎? (謝謝) – 2009-05-30 03:32:31
有一個簡單的代碼示例? – 2009-07-24 06:03:13