我正在尝试设置有意义的网址,例如http://www.site.com/company/department但是它会破坏我在Controller / Action形状中的现有网址。
在我的引导程序中,我按如下方式创建新路线:
$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时,它会将我路由到BrowseController中的IndexAction。大!问题是我的其他管理员相关的URL--例如/ company / create等 - 也在那里指导。
有没有办法让Zend首先执行默认控制器/动作匹配,并且仅在失败时恢复到浏览路线?
谢谢!
答案 0 :(得分:5)
路由在LIFO上处理,您需要执行以下操作:
$router->removeDefaultRoutes();
//add your routes
//add in the default route:
$route = new Zend_Controller_Router_Route(":module/:controller/:action"
相反,您可能只想在您的“浏览”路线中添加“静态”组件。这将更具体:
$route = new Zend_Controller_Router_Route("browse/:company/:dpt", array('controller' => 'browse'));
IMO,第二个是更好的选择