2016-06-17 46 views
0

我有兩個控制器,IndexController.phpLoginController.php。登錄成功後,我想要登錄IndexController.php。我有:如何重定向到另一個控制器?

return $this->redirect()->toRoute(NULL , array( 
    'controller' => 'login', 
    'action' => 'home' 
); 

它運作良好,但是當我寫:

'controller' => 'index', 'action' => 'index' 

它不工作。

+0

您應該指定路由名稱(而不是NULL值)。 – chaoss88

回答

2

在你的module.config.php你必須爲每個控制器創建一個路由。例如,如果第一控制器的路線是myroute1和第二控制器的路線是myroute2,我們將有:

要訪問的第一個控制器:

return $this->redirect()->toRoute('myroute1', [ 
    'controller' => 'login', 
    'action' => 'home' 
]); 

要訪問的第二控制器:

return $this->redirect()->toRoute('myroute2', [ 
    'controller' => 'index', 
    'action' => 'index' 
]); 
+0

謝謝先生,我發佈我的module.config.php和LoginController.php如下:請幫助我先生。 –

0

您也可以使用控制器的forward方法派遣其他控制器的其他動作,而不重定向:

return $this->forward()->dispatch('/MyModule/Controller/MyController', ['action' => 'index']); 
相關問題