2016-06-17 5 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이고 상기 제 2 제어부의 경로 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']); 
관련 문제