如何重定向到另一个控制器?

时间:2016-06-17 06:46:36

标签: php redirect zend-framework2

我有两个控制器,IndexController.phpLoginController.php。我想在成功登录后前往IndexController.php。我有:

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

效果很好,但是当我写的时候:

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

它不起作用。

2 个答案:

答案 0 :(得分:2)

在您的module.config.php中,您必须为每个控制器创建一条路线。例如,如果第一个控制器的路由为myroute1且第二个控制器的路由为myroute2,则我们将:

要访问第一个控制器:

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

访问第二个控制器:

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

答案 1 :(得分:0)

此外,您可以使用forward控制器方法调度其他控制器的其他操作而无需重定向:

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