2016-06-17 9 views
0

私は2つのコントローラ、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では、各コントローラのルートを作成する必要があります。第1のコントローラのルートはmyroute1であり、前記第二のコントローラのルートがmyroute2ある場合、例えば、我々が有するであろう:

を第1のコントローラにアクセスするには:

:前記第二のコントローラにアクセスする

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']); 
関連する問題