2017-02-22 36 views
1

То, что я пытаюсь сделать на поверхности, кажется простым, базовым OOP PHP, но я просто не могу заставить его работать. У меня есть класс контроллера, который звонит модель, эта модель расширяет другую модель шахты, но он выдает ошибку, заявив, что не может найти его:Расширение моделей в codeigniter 3

Controller (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; 
    } 
} 

Это ги VES мне ошибку Fatal error: Class 'base_model' not found in /ci/application/models/Users_model.php on line 3

ответ

1

Сохранить ваш Base_model в application/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_model в application/models назван User_model.php, имеющий следующий код

class User_model extends Base_model 
{ 

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

} 

Затем сделайте контроллер Welcome.php в appliation/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

Вы просто должны определить местонахождение Base_model в вашем User_model, как показано ниже. и вы можете легко получить доступ к функциям базовой модели.

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

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