2011-05-16 76 views
4

我正在嘗試設置有意義的URL,例如http://www.site.com/company/department,但它影響了我在Controller/Action形狀中的現有URL。如何保留默認的Zend路線

在我的引導,我創建了我的新路線如下:

$frontController = Zend_Controller_Front::getInstance(); 
$router = $frontController->getRouter(); 
$route = new Zend_Controller_Router_Route(":company/:dpt", array('controller' => 'browse')); 
$router->addRoute("browse", $route); 

當我瀏覽到http://www.site.com/ABC_Co/dry_goods其路由我的indexAction在BrowseController。大!問題是我的其他與管理相關的URL(例如/ company/create等)也在指揮那裏。

有什麼方法可以讓Zend執行它的默認控制器/動作首先匹配,只有在失敗時才恢復到瀏覽路徑?

謝謝!

回答

5

路線有LIFO處理,你需要做這樣的事情:

$router->removeDefaultRoutes(); 
//add your routes 
//add in the default route: 
$route = new Zend_Controller_Router_Route(":module/:controller/:action" 

相反,你可能只是想添加sonsider一個「靜態」組件到你的「瀏覽」路線。這將使更爲具體:

$route = new Zend_Controller_Router_Route("browse/:company/:dpt", array('controller' => 'browse')); 

IMO,第二個是更好的選擇