2013-03-08 18 views
9

別のモジュールにリダイレクトするにはどうすればよいですか?Zend Framework 2リダイレクト

return $this->redirect()->toRoute(null, array(
    'module'  => 'othermodule', 
    'controller' => 'somecontroller', 
    'action'  => 'someaction' 
)); 

これはうまくいきません。

+2

のようになめらかに指示されます、にリダイレクトルート名。別のアクションをディスパッチするだけの場合は、forward()ヘルパーを使用してください。 http://framework.zend.com/manual/2.1/en/modules/zend.mvc.plugins.html – Sam

答えて

24

これは私が別のルートに私のコントローラからリダイレクトする方法です:

return $this->redirect()->toRoute('dns-search', array(
    'companyid' => $this->params()->fromRoute('companyid') 
)); 
DNS検索が、私はにリダイレクトするルートである

と企業IDは、URLのparamsです。

終わりではURLは、(例えば)/ DNS /検索/ 1になり

+0

を参照してください。コード実行が期待される場合は、悪いことが起こる可能性があるので、 "return"キーワードを忘れないようにしてくださいそれなしでそこで止まることを;-) – AlexMA

6

これはZF2にリダイレクトする方法です:

return $this->redirect()->toRoute('ModuleName', 
    array('controller'=>$controllerName, 
     'action' => $actionName, 
     'params' =>$params)); 

私はこれがあなたを助け願っています。

+3

'ModuleName'は' RouteName'でなければなりません –

16

リダイレクトする簡単な方法の一つは次のとおりです。

return $this->redirect()->toUrl('YOUR_URL'); 
+1

これはうまくいきました。 'return $ this-> redirect() - > toUrl( '/ make-world-easy?id =ありがとう'); ' – YumYumYum

+0

この解決策は、別の目的のためです:他のリソースへのリンクに使用されます。原則としてそれは重要ではありませんが、あなたがZend-ishのアプローチを必要とするならば、受け入れられた答えは最高です。 –

1

Googleはこの質問がZF2に関連していること、考えてはアンカーにリダイレクトするので、あなたが気にしない場合、私は、ここに答えを追加します。私達はちょうどtoRouteの第三引数にfragmentオプションを使用することができます。

public function doAction(){ 
    return $this->redirect() 
     ->toRoute('chats', 
        array('action' => 'view', 
         'id' => $message->getChat()->getId() 
        ), 
        array('fragment' => 'm' . $message->getId()) 
    ); 
} 

マイルート:

'chats' => array(
    'type' => 'segment', 
    'options' => array(
     'route' => '/chats/[:action/][:id/]', 
     'constraints' => array(
      'action' => '[a-zA-Z][a-zA-Z0-9_-]*', 
      'id' => '[0-9]+', 
     ), 
     'defaults' => array(
      'controller' => 'Application\Controller\Chats', 
      'action' => 'index', 
     ), 
    ), 
), 

ので、ユーザーはあなたがリダイレクトしている場合/chats/view/12/#m134

関連する問題