12

Code Igniter の学習を始めたばかりです。

あるコントローラー (first_cont.php) から別のコントローラー (second_cont.php) に変数を渡す方法を知りたいですか?

助けていただければ幸いです。

前もって感謝します :)

4

6 に答える 6

15

状況によります。しばらくの間データを保持したい場合は、セッション データが適しています。ただし、一度だけ使用する必要がある場合は、フラッシュ データの方が適切な場合があります。

最初のステップは、セッション ライブラリを初期化することです。

$this->load->library('session');

次に、情報をフラッシュ データに保存します。

$this->session->set_flashdata('item', $myVar);

最後に、2 番目のコントローラーでデータをフェッチします。

$myVar = $this->session->flashdata('item');

明らかに、これは、2 番目のコントローラーからセッション ライブラリを再度初期化するか、セッション ライブラリをロードする独自のベース コントローラーを作成し、両方のコントローラーがそのコントローラーから継承する必要があることを意味します。

于 2012-10-10T10:14:31.577 に答える
7

codeigniterでは、2つの異なるコントローラー間で変数を渡すことはできないと思います。明らかなメカニズムの1つは、セッションデータを使用することです。

于 2012-10-10T09:58:08.053 に答える
7

わかりました、MVC について、ほとんどの人がすぐに引用できるものを次に示します。

コントローラーは入力を受け取るためのもので、モデルはロジックのためのものであり、ビューは表示するためのものです。

さて、厳密に言えば、コントローラーから別のコントローラーにデータを送信したくないはずです。それが必要なケースは考えられません。


ただし、絶対に必要な場合は、単純に使用redirectして他のコントローラーにリダイレクトすることができます。

何かのようなもの:

// some first_cont.php code here
redirect('/second_cont/valuereciever/value1')


// some second_cont.php code here
public function valureciever($value){
    echo $value; // will output value1
}
于 2012-10-10T09:59:31.063 に答える
4

Codeigniter には、あるコントローラーから別のコントローラーに値を渡す方法がたくさんあります。

codeigniter セッションを使用して、あるコントローラーから別のコントローラーにデータを渡すことができます。

そのためには、最初にセッション用のライブラリを含める必要があります

$this->load->library('session');

次に、変数名を使用してフラッシュデータ値を設定できます。

// Set flash data 
$this->session->set_flashdata('variable_name', 'Value');

codeigniter session flashdata を使用して、必要な場所で値を取得できます

// Get flash data
$this->session->flashdata('variable_name');

2 番目のオプション codeigniter を使用すると、コントローラー名、メソッド名、および値を使用して、controll から URL をリダイレクトし、別のコントローラーで値を取得できます。

// Passing the value 
redirect('/another_controller_name/method_name/variable');

次に、別のコントローラーで値を取得できます

public function method_name($variable)
{
echo $variable;
}

そのすべて....

于 2014-03-06T09:29:02.593 に答える