0

我在 Zend Framework 中的 URL 重写有问题,我希望有人能帮我解决这个问题。

我需要在 URL 中将模块 admin 重命名为 admindev,以适用于所有控制器和操作。

这里我的代码写在 Bootstrap.php 中:

public function _initModuleRoutes()
{
    $this->bootstrap('FrontController');
    $frontController = $this->getResource('FrontController');
    $router = $frontController->getRouter();
    $route = new Zend_Controller_Router_Route(
        'admindev/:action/*',
        array(
            'module'=>'admin',
            'controller'=>':controller',
            'action'=>':action'
        )
    );      
    $router->addRoute('admin',$route);
    return $router;
}

谢谢大家,

4

1 回答 1

1

您没有在路由中指定 :controller 参数。

试试这样:

public function _initModuleRoutes()
{
    $this->bootstrap('FrontController');
    $frontController = $this->getResource('FrontController');
    $router = $frontController->getRouter();
    $route = new Zend_Controller_Router_Route(
        'admindev/:controller/:action/*',
        array(
            'module'=>'admin',
            'controller'=>':controller',
            'action'=>':action'
        )
    );      
    $router->addRoute('admin',$route);
    return $router;
}

您也可以通过 application.ini 配置实现相同的效果:

resources.router.routes.admindev.type = "Zend_Controller_Router_Route"
resources.router.routes.admindev.route = "/admindev/:controller/:action/*"
resources.router.routes.admindev.defaults.module = "admin"

其他 application.ini 提示和技巧在这里

于 2012-11-09T15:22:47.960 回答