1

重複の可能性:
PHP:「通知:未定義の変数」および「通知:未定義のインデックス」</a>

セッションデータとdbクエリの両方をCodeigniterのビューに渡そうとしています。ビューファイルに次のようなエラーが表示されます:'メッセージ:未定義の変数:データ'

問題は$idea変数にあります。変数は未定義のエラーを登録します。

コントローラ:

public function members() {

    if($this->session->userdata('is_logged_in')){
        $session = $this->session->all_userdata();
        $facebook_id = $data['id']; 


        $this->load->model('idea'); 
        $idea = $this->idea->get_idea($facebook_id); 

        //merge the two arrays to get data variable
        $data = $session + $idea; 
        $this->load->view('members', $data); 
    } else {
        redirect('main/login'); 
    }
}

モデル:

public function get_idea($facebook_id) {
    $data = array(
        'id' => '', 
        'idea' => '', 
        'facebook_id' => $facebook_id
    );

    $query = $this->db->get('idea', $facebook_id); 

    return $query->result_array(); 

}

私が使用したリソースの一部を次に示します。
-
CodeIgniterコントローラーとビューを使用してforeachループを作成する
-codeigniter :コントローラーからビューに配列を渡す-http
: //blog.mattheufarmer.com/2010/building-a-website-in -codeigniter-part-ii-getting-data-and-using-it /

お手伝いありがとう!

4

2 に答える 2

3
$data = $session + $idea; 

いいえ、違います。それはあなたが配列をマージする方法ではありません。

あなたがやりたいことをするためのよりクリーンでより思慮深いアプローチ:

$data = array( $session, $idea );

さもないと、

$data = array_merge($session, $idea);

編集:

これを読む必要がありますhttp://ellislab.com/codeigniter/user-guide/general/views.html

とにかく、あなたが完全に愚かなことをしているのでない限り、あなたはこれをすることができるはずです:

$data = array( 'sesssion' => $sesssion, 'idea' => $idea ); 

そしてそれをあなたの見解に伝えてください。そして、あなたの見解では、$ sessionでセッションを呼び出し、$ideaでアイデアを呼び出すことができます。説明する:

$data = array('name' => 'josh', 'sex' => 'often');
$this->load->view('welcome', $data);

そして私の見解では:

<? echo "$name has sex $sex"; // returns josh has sex often ?>

ビューでは、キーは変数になり、値はそれらの変数($ dataのキーでした)によってアクセスされます。$ dataを呼び出すのではなく、キーを呼び出します。

$data = array('key' => 'value');

他に問題がありましたらお知らせください。:)

于 2013-01-03T02:34:10.277 に答える
3

あなたはこのようにすることができます-

public function members() {

    if($this->session->userdata('is_logged_in')){
        $data['session'] = $this->session->all_userdata();
        $facebook_id = $data['id']; 


        $this->load->model('idea'); 
        $data['idea'] = $this->idea->get_idea($facebook_id); 

        $this->load->view('members', $data); 
    } else {
        redirect('main/login'); 
    }
}
于 2013-01-03T02:42:44.470 に答える