Zend框架路线

时间:2010-11-24 22:46:17

标签: zend-framework routing

我的模块中有以下控制器..

UserController.php AdminUserController.php

现在管理员控制器的路由转到:module / admin-user /(默认行为)

如何制作路线以便所有管理员更改为:

/管理/模块/用户

1 个答案:

答案 0 :(得分:2)

您必须编写自定义路线。

在代码中:

$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。

这样的事情应该有用。现在如果事情变得非常复杂,你可能需要深入研究正则表达式路由器 - 但这很简单,我认为它需要它。