2013-01-11 125 views
1

我想從我的控制器傳遞到像這樣的觀點...笨將數據傳遞給視圖

public function playerslist() 
    { 
     $this->load->database(); 
     $data = $this->db->get('skaters'); 
     $this->load->helper('url'); 
     $this->load->view('playerslist', $data); 
    } 

在我看來......

<?php echo $data; ?> 

,但我得到這個錯誤...

遇到

一個PHP錯誤

嚴重性:注意

消息:未定義的變量:數據

文件名:觀點/ playerslist.php

行號:76

我在做什麼錯?

我想這樣做與此數據被放在一個foreach語句和$數據數組中顯示一切

foreach($data as $value => $key){ 
echo $key . "<br/>"; 
} 

感謝, Ĵ

+0

的[笨從控制器傳遞數據,以查看]可能重複(http://stackoverflow.com/questions/6257736/codeigniter-passing-data -from-controller-to-view) –

回答

6

您不能從您的視圖直接訪問$data 。您傳遞給您的視圖的$data必須是關聯數組。這些鍵將在您的視圖中轉換爲變量。

例如:

$data = array(
    'name' => 'John', 
    'bars' => 23 
); 

$this->load->view('playerslist', $data); 

然後,在你看來,這些將被轉換爲變量:

<?php echo $name; ?> has <?php echo $bars; ?> bars of chocolate. 

如果您要訪問原始格式的數據,傳遞進聯合陣列:

$data = $this->db->get('skaters')->result(); 
$this->load->view('playerslist', array('data' => $data)); 
+0

謝謝喬,那麼我該如何解決我的db->進入視圖?所以我可以顯示我的數據 – user1269625

+0

它的工作,但是當我試圖做一個foreach statment在我的$的數據來看,它返回這個conn_idResource ID#13 result_idResource ID#14 result_arrayArray result_objectArray custom_result_objectArray current_row0 num_rows1 ROW_DATA – user1269625

+0

@ user1269625 - 你必須在你的查詢中調用'result()'。看到我的第二次更新。 –

1

根據您的問題和示例代碼,我得出結論,您想要從表'檢索者'中檢索數據並將其顯示在視圖中。

$this-> db-> get ('skaters'); //not return result object or array 

你需要改變代碼

$ this-> db-> get ('skaters') -> result(); // return object 

$ this-> db-> get ('skaters) -> result_array(); //return array 

檢查此鏈接由陣列的方式http://ellislab.com/codeigniter/user-guide/database/results.html

數據從控制器向視圖傳遞或視圖加載功能的第二個參數中的對象。 然後笨將使用「提取」功能提取第二參數http://php.net/manual/en/function.extract.php

public function playerslist() 
    { 
     $ this-> load-> database(); 
     $ data = $ this-> db-> get ('skaters') -> result(); 
     $ this-> load-> helper ('url'); 
     $ this-> load-> view ('playerslist', array ('data' => $ data)); 
    }