2010-04-21 86 views
2

我已經爲我的CodeIgniter框架編寫了一個新模型。 我試圖從構造函數中加載數據庫,但我發現了以下錯誤:CodeIgniter:無法從模型中加載數據庫

Severity: Notice 
Message: Undefined property: userdb::$load 
Filename: models/userdb.php 
Line Number: 7 

Fatal error: Call to a member function database() on a non-object in 
/var/www/abc/system/application/models/userdb.php on line 7 

這裏是我的模型:

<?php 

class userdb extends Model { 

    function __construct() { 

     $this->load->database(); 

    } 
?> 

我在做什麼錯在這裏?

回答

10

你忘了先調用父構造函數。喜歡的東西:

<?php 

class userdb extends Model { 

function __construct() { 

    parent::Model(); 

    $this->load->database(); 

} 
?> 
+0

我的不好,檢查了錯誤的答案。 – thedp 2010-05-18 16:05:38

+0

調用未定義的方法CI_ – muaaz 2017-03-19 16:57:09

2

我不知道這是否會導致問題或沒有,但型號名稱都應該擁有的第一個字母大寫。 http://ellislab.com/codeigniter/user-guide/general/models.html Jens也是正確的,您也需要調用父構造函數。

+1

上的應用程序/ models/Xyz_manager.php中的CI_Model :: Model()這是我的第一個想法 - CodeIgniter命名約定需要大寫的類名稱。我會寫,直到我注意到缺少的構造函數調用;) – 2010-04-21 22:33:06

+0

'父::模型();'做了竅門。至於類/模型名中的大寫字母,我真的很討厭它,但我改變它以避免可能的錯誤。感謝您的幫助。 – thedp 2010-04-21 22:50:35

+1

當它甚至沒有指定正確的答案時,這是最好的答案? Jens下面正確回答。 – 2010-04-22 02:53:27