更改Zend Framework中的模块路由


Change module route in Zend Framework

我有模块admin。通常情况下,ZF会以其名称为该模块创建路由,但我不希望出现这种行为。

我想在另一条路由下访问admin模块,例如totallyNotAdminPanel,我希望它是访问该模块的唯一可能的路由,但当我调用$this->url(['module'=>'admin']); 时,我想查看url帮助程序以指向该模块


结论:

  • admin模块只能通过totallyNotAdminPanel路由访问
  • URL视图帮助程序必须指向totallyNotAdminPanel路由,尽管传递了['module' => 'admin']参数

有什么办法在ZF1中实现它吗?

我认为您可以使用自定义路由。

我会这样做:

  1. 创建自定义路由并在引导程序类中对其进行初始化。例如

    public function _initRoutes () {
        $router = $this->_front->getRouter();
        $router->addRoute(
           'admin-panel',
            new Zend_Controller_Router_Route(
                'totallyNotAdminPanel/:controller/:action/*',
                ['module' => 'admin']
            )
        );
    }
    
  2. 在视图中,使用自定义url创建链接,例如

    $this->url(['module'=>'admin', 'controller'=>'users', 'action'=>'list'], 'admin-panel');
    

它将为您提供如下输出:/totallyNotAdminPanel/users/list-

祝你好运:)