找不到我的解決方案。希望你能幫助。zend默認的控制器動作,在出錯之前
我想有一個網址(如Twitter)www.domain.com/USERNAME
發生什麼它去錯誤控制。我希望它在這些情況下轉到不同的控制器。某種默認控制器,如果沒有找到。
讚賞一個小例子或任何信息。
感謝,
找不到我的解決方案。希望你能幫助。zend默認的控制器動作,在出錯之前
我想有一個網址(如Twitter)www.domain.com/USERNAME
發生什麼它去錯誤控制。我希望它在這些情況下轉到不同的控制器。某種默認控制器,如果沒有找到。
讚賞一個小例子或任何信息。
感謝,
您應該創建一個自定義路由:
:username
但要確保,你先添加這條路線,使下列途徑可以比擬的。有關自定義rotues信息,請參閱路由器的文檔:
http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.routes
得到它具有以下工作。
將此代碼放置在引導程序中。
$front = $this->getResource("frontController");
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$route = new Zend_Controller_Router_Route('/:username', array('controller' => 'index','action' => 'user'));
$router->addRoute('minipage', $route);
此一個替代方案是將所述規則中的config.ini:
routes.router.type = "Zend_Controller_Router_Route"
routes.router.route = "/:username"
routes.router.defaults.controller = "index"
routes.router.defaults.action = "minipage"
;rules for the exception to the above rulles.
routes.indexItem.type =Zend_Controller_Router_Route
routes.indexItem.route = cms
routes.indexItem.defaults.controller = cms
routes.indexItem.defaults.action = index
routes.indexItem2.type =Zend_Controller_Router_Route
routes.indexItem2.route = policy
routes.indexItem2.defaults.controller = policy
routes.indexItem2.defaults.action = index
routes.indexItem3.type =Zend_Controller_Router_Route
routes.indexItem3.route = index
routes.indexItem3.defaults.controller = index
routes.indexItem3.defaults.action = index
以及使用
$前置式> getRouter()引導加載這個 - > addConfig (新的Zend_Config_Ini(APPLICATION_PATH。「/configs/routes.ini」),「routes」);
問題在這裏,它使用它不檢查控制器是否存在。這是一種默認設置。 例如,如果我有www.domain.com/user/和「用戶」是一個控制器,它試圖使用戶名 – 2010-08-24 08:01:22
那麼你只能使用這個,如果你只使用自定義路由,而不是默認的模塊路由,順便說一句,twitter也是這樣做的。 – DASPRiD 2010-08-24 08:20:41
是的,這就是我的想法,歡呼聲 – 2010-08-24 08:54:46