2011-12-06 38 views
2

我的模型:如下圖所示,非常基本的模式是不可用同一控制器的其他功能

class User extends CI_Model 
{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 

    function getAll() 
    { 
     $this->db->order_by("lastName", "asc"); 
     $this->db->order_by("firstName", "asc"); 
     $this->db->order_by("userName", "asc"); 
     $query = $this->db->get('user'); 

     // test for result 
     if($query->num_rows() > 0) 
     { 
      return $query->result(); 
     } 

     return NULL; 
    } 
} 

我的控制器:我的控制器實際上一部分,每一個加載了用戶的時間/顯示功能默認路線,錯誤(進一步下來)顯示。加載在控制器的構造器中的模型是否可用於同一控制器中的所有其他功能?

class Users extends CI_Controller 
{ 
    function __contruct() 
    { 
     parent::__construct(); 
     $this->load->model('user'); 
    } 

    function display() 
    { 
     $data['users'] = $this->user->getAll(); 

     $head['pageTitle'] = 'Users Panel'; 

     $this->load->view('security/redirect'); 
     $this->load->view('template/head', $head); 
     $this->load->view('user/usersPanel', $data); 
     $this->load->view('template/foot'); 
    } 
} 

我的錯誤:指的行, 「$數據[ '用戶'] = $這個 - >用戶> GETALL()」,在上述控制器

A PHP Error was encountered 
Severity: Notice 
Message: Undefined property: Users::$user 

我的環境:

Codeigniter 2.1.0; 
Mac Lion; 
MAMP 2.0; 

回答

9

不應該這樣:

class Users extends CI_Controller 
{ 
    function __contruct() 
    { 

是這樣的:

class Users extends CI_Controller 
{ 
    function __construct() 
    { 

替換,以構建contruct。

+0

這是我見過的最奇怪的答案;也是最搞笑的 – iGbanam

+8

@Lance和Yasky試着仔細看看答案。第一個結構沒有s。然後在第二個有一個s。 :D – bot

+0

我拼寫它一樣。看了10次之後,我也看不出有什麼不同。 – TurtleTread

1

不應該這樣:

$data['users'] = $this->user->getAll(); 

是個是:

$data['users'] = $this->user_model->getAll(); 

對不起 也型號名稱:

$這個 - >負載>模型( 'user_model');

和類名User_model擴展CI_Model

我所有的CI項目都設置了這種方式。

http://codeigniter.com/user_guide/general/models.html

+0

已經嘗試過。還是一樣的錯誤。與將其更改爲大寫'用戶'相同。 – user1082522

+0

您是否在模型文件中嘗試過大寫'User_model'並且在控制器中嘗試了'$ this-> user_model'(小寫)? – minboost

+0

當然,我做了,三重檢查。 – user1082522

相關問題