2012-02-16 7 views
1

コントローラーから他のコントローラーにデータを渡す方法がありますか?CodeIgniter?コントローラーにデータがあり、別のコントローラーに渡します。 ..コントローラーから別のコントローラーにデータを渡す

+1

理由だけではなく、それとの相互作用の代わりに、コントローラーの周りにそれを渡して、モデルにデータを渡しませんか? – cspray

+0

@CharlesSprayberryできますか?あなたは、コントローラ1のmodel1にvar1を渡し、コントローラ2のmodel1からvar1を取得できますか? – stormdrain

+0

私は@CharlesSprayberryに同意します、それは行うべき最もよいことです。 – tomexsans

答えて

0

$_POSTデータは別のコントローラにデータを渡します。また、そのようなユーザのparamsことができます。

class Test extends CI_Controller{ 
    function page($param=""){ 
     echo $param; 
    } 
} 

http://site.local/test/page/blahは、単語「何とか」とあなたに空白のページが得られます。しかし、intの外のparamsを介してデータを渡すのは良い考えではありません(idのように)... intを使用しない場合、しばしばあなたはURL文字を許可しません。

1

MVCパターンの目的を捨てます。コントローラは、「お互いを知る」必要はありません。その場合、深刻なカップリングの問題があるかもしれません。

可能であれば、@stormdrainのように、URI(ステートレスなRESTful)を介して情報を「渡す」ようにしてください。ステートレス性を維持できない場合は、セッションデータを参照してください。

セッションデータは、特にセッションで以前に発生したことをアプリケーションが「覚えておく」必要がある場合に、あなたがやっていることに少し適しています。 (それはいくつかの文書化の欠陥、公正な警告がないわけではないのですが)CIは、このためのかなり良い内部ライブラリを持っています

http://codeigniter.com/user_guide/libraries/sessions.html

+0

セッションを使用しないと4KBのデータに制限されますか? db_sessionを使用していない場合は?私はあまりにもそれを誤解している可能性があります:) – stormdrain

+0

それは正しいです。データベースを使用していない場合、ブラウザのCookieストレージサイズは制限になります – landons

関連する問題