2011-02-06 100 views
1

這是我運行代碼:爲什麼我在codeigniter庫中出現成員函數錯誤?

class Auth { 
//put your code here 

var $ci; 

function __construct() 
{ 
    $this->ci =& get_instance(); 
    $this->ci->load->library('session'); 
} 

function Login($param) 
{  
    // Get user from database   
    $this->ci->load->model('User_model'); 
    $user = $this->ci->user_model->getuserbyemail($param["email"]); 

(或者至少是我參加競選的一部分)

,我發現了以下錯誤:

Fatal error: Call to a member function getuserbyemail() on a non-object in C:\Users\Piers\Documents\Projects\dithinsi\application\libraries\Auth.php on line 28

第28行是上面代碼的底線。

這是因爲我沒有正確處理$ci變量嗎?

+0

犯規`$這個 - > ci`返回User_Model實例,而不是將其存儲在內部?試試`$ users = $ this-> ci-> load-> model('User_model'); $ users-> getuserbyemail();` – prodigitalson 2011-02-06 16:49:39

+0

您是否從其他文件複製User_model文件並忘記重命名該類? – Knossos 2011-02-06 16:49:27

回答

2

這是因爲user_model屬性未申報。

根據Codeigniter manual,模型對象的屬性名稱等於給予model()方法的參數值。

在PHP中,變量名稱區分大小寫。 User_model不等於user_model

嘗試用會發生什麼:

$user = $this->ci->User_model->getuserbyemail($param["email"]); 
相關問題