有没有办法在ZendFramework中定义通配符路由以将整个模块路由到另一个?

时间:2012-05-21 00:57:31

标签: zend-framework zend-route

有没有办法在ZendFramework中定义通配符路由以将整个模块路由到另一个?

e.g。我想要

http://website.com/ / 控制器 / 操作 /将被路由到

http://website.com/ 朋友 / 控制器 / 行动 /

我可以通过.htaccess来做到这一点,但除了以下3个句子之外,有没有办法在路线上做到这一点?

$router->addRoute('friend',new Zend_Controller_Router_Route('people/:controller/:action',
                array("module"=>'friend')));

$router->addRoute('friend2',new Zend_Controller_Router_Route('people/:controller',
                array("module"=>'friend',"action"=>"index")));      

$router->addRoute('friend3',new Zend_Controller_Router_Route('people/',
                array("module"=>'friend',"action"=>"index","controller"=>"index")));

1 个答案:

答案 0 :(得分:2)

您可以通过创建插件来执行您想要的操作

class My_Routing extends Zend_Controller_Plugin_Abstract
{
    public function routeShutdown($request)
    {
       $m = $this->_request->getModuleName();
       if($m == 'people') 
       {
         $this->_request->setModuleName('friends');
       }    
    }
}