在Zend Framework中获取模块名称bootstrap.php

时间:2012-12-31 06:23:12

标签: zend-framework

我在bootstrap.php中有路由包含:

protected function _initRoutes()

{
        $router->addRoute(
            'default',
            new Zend_Controller_router_Route('/:lang/:module/:controller/:action/*',
                array('lang'=>'fa',
                        'module' => ':module',
                        'controller'=>'index',
                        'action'=>'index',
                    )
                )
        );
}

但是当我使用这一行时,它不会替换模块名称,而是返回%3module,这是url编码:module:

$this->url(array('controller'=>'index','action'=>'index'),'default',true) ;

如何从请求的网址中获取模块名称,以免在_initRoutes()中工作?

1 个答案:

答案 0 :(得分:2)

使用此

$router->addRoute(
            'default',
            new Zend_Controller_router_Route('/:lang/:module/:controller/:action/*',
                array('lang'=>'fa',
                        'module' => 'default', //set the default module
                        'controller'=>'index',
                        'action'=>'index',
                    )
                )
        );

仅供参考:Manual

或者

否则将模块名称传递给url helper,

$module = $this->getRequest()->getModuleName();
$this->url(array('module'=>$module,'controller'=>'index','action'=>'index'),'default',true) ;