我在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()中工作?
答案 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) ;