2017-02-22 47 views
1

我想在表面上做什麼似乎很簡單,基本的OOP PHP,但我不能得到它的工作。我有被調用模型控制器類,即模型擴展我的另一個模型,但它拋出一個錯誤說,它不能找到它:在codeigniter 3中擴展模型

控制器(的welcome.php):

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('users_model'); 
} 

public function index() 
{ 
    $this->users_model->getAll(); 
} 

用戶模型(User_model.php):

class Users_model extends Base_model 
{ 

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

} 

基本模型(Base_model.php):

class Base_model extends CI_Model 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->database(); 
    } 

    public function getAll($table) 
    { 
     $query = $this->db->query('Query here'); 
     return $query; 
    } 
} 

此GI我錯誤Fatal error: Class 'base_model' not found in /ci/application/models/Users_model.php on line 3

回答

1

保存您的Base_modelapplication/core名爲Base_model.php與下面的代碼。

class Base_model extends CI_Model 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->load->database(); 
    } 

    public function getAll($table=FALSE) 
    { 
     $query = $this->db->query('Query here'); 
     return $query; 
    } 
} 

保存User_modelapplication/models命名爲User_model.php有下面的代碼

class User_model extends Base_model 
{ 

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

} 

然後做一個控制器Welcome.phpappliation/controllers具有下面的代碼延伸CI_Controller

public function __construct() 
{ 
    parent::__construct(); 
    $this->load->model('user_model');//loads user_model 
} 

public function index() 
{ 
    $data = $this->user_model->getAll(); //need a variable to hold return data 
} 
0

你只需要找到您的Users_model中的Base_model就像下面的代碼一樣您可以輕鬆訪問基礎模型的功能。

require('application/models/base_model.php'); 

class User_model extends Base_model 
{ 
    function __construct() 
    { 
     parent::__construct(); 
    } 
}