2011-01-24 7 views
0

検証に失敗したときに応答オブジェクトを使用して別のコントローラに移動する際に問題が発生しました。Zend request object redirecting

セットアップはアクションヘルパー(共通)を呼び出してユーザーの確認を試みる1つのコントローラー(userPages)で、失敗した場合はシステム内の別のURLにユーザーを送信する必要があります。コードの関連部分は次のとおりです。

  /* 
      * user was never logged in force them to login now 
      * we dont have access to any other helper methods so set it the long hard way...make 
      * sure to specify setDispatched to false to reque the dispatch event 
      */ 
      return $this->getRequest()->setModuleName('default') 
             ->setControllerName('index') 
             ->setActionName('login') 
             ->setDispatched(false); 

私はもともとZendの1.6とPHP 5.2.3でこのスニペットを使用(そして、それは完全に働いた)私は物事がするのでもう少し複雑得ている可能性があると思われるので、私はこれを言及しかし、私はドキュメントの中で、異なるタイプのリダイレクトや失敗の理由が必要であることを示すものは何も見つからないようです。誰にでもアイデアはありますか? btw:default/index/loginは私のサーバ上の有効なパスであり、上の行に達していて、すべてのパラメータが正常に返されて失敗してしまうことは間違いありません。

答えて

0

ので明らかに、私はタイプミスがあった、Zend_Controller_Action_Helper_Abstractから継承したアクションヘルパーのための正しい構文は次のとおりです。

//in case we need to redirect preload the redirector 
$redirector = $this->_actionController->getHelper('Redirector'); 
$redirector->gotoUrl('<your url here>'); 
0

あなたはあなただけ使用することができます別のアクションからリダイレクトしたい場合:

$this->_redirect('/index/login'); 

またredirector action helperを試すことができます。これがあなたが達成したいと思っていることを願っています。私はもともとアクションヘルパーからリダイレクタをしようとしたとき

+0

私が間違っている可能性が、私は私は思いませんアクションヘルパーにアクセスできるようになりました。私が試してみるたびに、アクションヘルパーの中からアクションヘルパーを使用することができます。 – xenador

+0

@ xenador。コントローラのアクションからではなく、カスタムアクションヘルパーからリダイレクトしたいのですか? – Marcin

関連する問題