2017-02-22 46 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(); 
    } 
}