2012-03-09 14 views
3

您好,我剛剛觀看了Nettuts上的第一個/第一天的截屏視頻「從scracth CodeIgniter」而我已經遇到了一個我不明白的錯誤。下面是截圖http://i39.tinypic.com/14mtc0n.jpg致命錯誤:調用第6行的C: wamp www ci application models site_model.php中的非對象的成員函數get()

在我的模型的代碼\ site_model.php是一樣的截屏

models\site_model.php 

    class Site_model extends CI_Model { 
    function getAll() { 
    $q = $this->db->get('test');   
    if($q->num_rows() > 0) { 
     foreach ($q->result() as $row) { 
      $data[] = $row; 
     } 
    return $data; 
    } 
} 

而且控制器控制器\ site.php

class Site extends CI_Controller { 
function index(){ 
    $this-> load-> model('site_model'); 
    $data['records'] = $this-> site_model-> getAll(); 
    $this-> load-> view('home', $data); 

} 
} 

這是我的數據庫信息incase

$db['default']['hostname'] = 'localhost'; 
$db['default']['username'] = 'root'; 
$db['default']['password'] = ''; 
$db['default']['database'] = 'ci_series'; 
(rest is default below) 

謝謝

+0

自動加載數據庫「它說,‘測試’是一個錯誤的參數?」 - 你能再次閱讀錯誤信息嗎? – zerkms 2012-03-09 05:23:35

+1

可能重複[Codeigniter模型錯誤](http://stackoverflow.com/questions/8625703/codeigniter-model-error) – 2012-03-09 05:25:47

+0

感謝Madmartigan,那個線程解決了我的問題,我需要有「$ this-> load->數據庫();」截屏視頻沒有做到這一點。哦,這個截屏會是大約2年。 – Matt 2012-03-09 05:50:20

回答

11

您需要先加載數據庫。 Codeiginiter默認不會爲你加載它。

您可以通過這裏調用

$this->load->database(); 

更多細節

http://codeigniter.com/user_guide/database/connecting.html

+0

明白了,是的,它看起來需要有「$ this-> load-> database();」作爲「函數索引(){」之後的第一行,但是,我不知道屏幕錄像是如何通過它的......但是這個視頻又是在2年前... – Matt 2012-03-09 05:48:59

+0

他可能只是自動加載它。這是數據庫驅動的應用程序通常的過程。 – JohnP 2012-03-09 17:15:58

+0

噢,這意味着他輸入了一個我沒有看到的代碼,或者是他的本地主機程序/服務器這樣做了嗎?他有MAMP加載,我有WAMP。我一定想知道我做錯了什麼。 – Matt 2012-03-10 17:36:09

0
它添加到 /config/autoload.php像這樣

$autoload['libraries'] = array('database'); 

也可以加載它時,你想要的需求

將構造函數添加到您的模型中,如果有的話沒有:

 

class Site_model extends CI_Model { 

    function __construct() 
    { 
     parent::__construct(); 
    } 
...... 
} 
 

和:通過更改的application/config/autoload.php如果你還沒有自動加載的

+1

什麼會添加構造函數更改? – zerkms 2012-03-09 05:32:29

相關問題