2017-09-12 12 views
-1

コントローラ:データベースからレコードをフェッチしようとしていますが、未定義の変数$ビューセクションのデータ。私が理解していない問題は何ですか?PHPエラーが発生しました重大度:通知メッセージ:未定義の変数:データファイル名:profile/viewabout.php行番号:79

public function vabout(){ 
    if(!$this->session->userdata('logged_in')){ 
     redirect('register/login'); 
    } 
    $this->load->model('profile_model'); 
    $data = $this->profile_model->viewprofile(); 

    $this->load->view('templates/pheader'); 
    $this->load->view('profile/viewabout',$data); 
    $this->load->view('templates/pfooter'); 

} 

モデル:これは、モデルのセクションで、レコードを取得するためのモデルのいずれかの問題があるのでしょうか?

public function viewprofile(){ 
    $data = $this->db->get('profile'); 
    return $data->row_array(); 
} 

ビュー: errore:PHPのエラーが $データは、あなたが、キー名としてあなたが合格すべてkeydataを含まないkey名前$dataで配列を渡す必要が未定義

<?php 
     foreach ($data as $row) 
     { ?> 
     <p><?php echo $row->id; ?></p> 
     <p><?php echo $row->name; ?></p> 
     <?php 
     } 
    ?> 

答えて

1

で遭遇data配列は可変表示になります

public function vabout(){ 
       if(!$this->session->userdata('logged_in')){ 
        redirect('register/login'); 
       } 
       $this->load->model('profile_model'); 
       $data['data'] = $this->profile_model->viewprofile(); // add data as index 

       $this->load->view('templates/pheader'); 
       $this->load->view('profile/viewabout',$data); 
       $this->load->view('templates/pfooter'); 

      } 

また、オブジェクトのようなビューでデータを取得しています。だから、モデルに配列

public function viewprofile(){ 
    $data = $this->db->get('profile'); 
    return $data->result(); 
} 
+0

それは@Bを動作しませんでした。デサイはとにかくありがとう。 –

1

に結果を変換しないこれであなたのコードを置き換えます:コントローラ

public function vabout($id = NULL){ 
     if(!$this->session->userdata('logged_in')){ 
      redirect('register/login'); 
     } 
     $this->load->model('profile_model'); 
     $data['data'] = $this->profile_model->viewprofile($id); 

     $this->load->view('templates/pheader'); 
     $this->load->view('profile/viewabout',$data); 
     $this->load->view('templates/pfooter'); 

    } 

はこれでモデルを交換します。それは正しい?

モデル:

public function viewprofile($id = FALSE){ 
    if($id === FALSE){ 
     $query = $this->db->get('profile'); 
     return $query->result_array(); 
     } 
     $query = $this->db->get_where('profile',array('id' => $id); 
     return $query->row_array(); 
    } 

ビュー:

<?php 
       foreach ($data as $row) 
       { ?> 
       <p><?php echo $row['id']; ?></p> 
       <p><?php echo $row['name']; ?></p> 
       <?php 
       } 
      ?> 
+0

ありがとう@flixyそれは働いた.... –

+0

いつでも@SohailShaikh – flixy

+0

@ SohailShaikh同じ機能で2つのリターン、あなたは真剣に働いていますか? –

関連する問題