2012-09-08 104 views
3

如何在路由中工作多路控制器? 我的路线:路由器zend框架中的动态控制器1.11

$router->addRoute(
     'index', 
     new Zend_Controller_Router_Route('/:lang/:@action', 
      array(
       'lang' => 'en', 
       'module' => 'default', 
       'controller' => 'index', 
       'action' => 'index' 
      ) 
     ) 
    ); 

这与指数控制器发送工作,但不具有权威性控制器工作。 如何使用该路由和索引认证控制器?

我的菜单项:

$this->url(array('controller'=>'Auth','action'=>'index') 

该菜单项,无法正常工作。 我的完整功能_initRoutes()

protected function _initRoutes(){ 

    $frontController = Zend_Controller_Front::getInstance(); 
    $router = $frontController->getRouter(); 
    $router->removeDefaultRoutes(); 
    $router->addRoute(
      'fullRoute', 
      new Zend_Controller_Router_Route('/:lang/:module/:controller/:action', 
        array('lang' => ':lang') 
      ) 
    ); 
    $router->addRoute(
      'languageControllerAction', 
      new Zend_Controller_Router_Route('/:lang/:controller/:action', 
        array('lang' => ':lang') 
      ) 
    ); 

    $router->addRoute(
     'index', 
     new Zend_Controller_Router_Route('/:lang/:@action', 
      array(
       'lang' => 'en', 
       'module' => 'default', 
       'controller' => 'index', 
       'action' => 'index' 
      ) 
     ) 
    ); 

} 

我需要控制器权威性的行动路线。

+0

你想为'IndexController'创建一条路由,为'AuthController'创建第二条路由吗? –

回答

0

路线#1

这将指向http://yoursite.com/authdefault模块,AuthControllerindexAction

$router->addRoute(
     'auth', 
     new Zend_Controller_Router_Route(
      'auth', 
      array(
       'lang' => 'en', 
       'module' => 'default', 
       'controller' => 'auth', 
       'action' => 'index' 
      ) 
     ) 
); 

路线#2

这将指向http://yoursite.com/default模块,AuthControllerindexAction

$router->addRoute(
     'index', 
     new Zend_Controller_Router_Route(
      '', 
      array(
       'lang' => 'en', 
       'module' => 'default', 
       'controller' => 'auth', 
       'action' => 'index' 
      ) 
     ) 
); 
+0

这个解决方案不工作:( – user1657394

+0

现在工作,但是。控制器索引的网站site.com/en/ /。如何隐藏控制器名称在url? – user1657394

+0

嗨,请看看我更新的答案,并回应评论 –