【发布时间】:2010-11-26 02:06:19
【问题描述】:
我的模块中有以下控制器..
用户控制器.php AdminUserController.php
现在管理控制器的路由转到:module/admin-user/(默认行为)
如何创建路由,以便将所有 admin- 更改为:
/管理员/模块/用户
【问题讨论】:
我的模块中有以下控制器..
用户控制器.php AdminUserController.php
现在管理控制器的路由转到:module/admin-user/(默认行为)
如何创建路由,以便将所有 admin- 更改为:
/管理员/模块/用户
【问题讨论】:
您必须编写自定义路线。
在代码中:
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$route = new Zend_Controller_Router_Route(
'admin/:module/user', array('controller' => 'admin-user'));
$router->addRoute('module-admin-router', $route);
在 .ini 文件中(我喜欢将我的文件与 application.ini 分开):
[routes]
routes.module-admin-router.type = "Zend_Controller_Router_Route"
routes.module-admin-router.route = "archive/:module/user"
routes.module-admin-router.defaults.controller = "admin-user"
然后您必须引导该应用程序部分以启用路由;
protected function _initRoutes ()
{
// setup routes here.
$front = $this->getResource('frontcontroller');
$router = $front->getRouter();
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'routes');
$router->addConfig($config->routes);
}
此路由将匹配任何管理员/模块/用户请求并将其发送到匹配模块中的 AdminUserController。
类似的东西应该可以。现在,如果事情变得非常复杂,您可能需要深入研究正则表达式路由器 - 但这就像我认为的那样简单。
【讨论】: