如何保留默认的Zend路由

时间:2011-05-16 02:35:51

标签: zend-framework zend-route

我正在尝试设置有意义的网址,例如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首先执行默认控制器/动作匹配,并且仅在失败时恢复到浏览路线?

谢谢!

1 个答案:

答案 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,第二个是更好的选择