В CodeIgniter 3.1.3 Я продлил CI_Model в приложении/ядра/MY_Model.php:
class MY_Model extends CI_Model {
public function __construct($id = NULL) {
parent::__construct();
$this->load($id);
}
public function load($id) {
$this->db->where('id', $id);
$this->db->limit(1);
$query = $this->db->query($this->_table);
if ($row = $query->result()) {
// @todo Process results
}
// Free the resources.
$query->free_result();
}
}
Мои User_model выглядит следующим образом:
class User_model extends MY_Model {
public function __construct($id = NULL) {
parent::__construct($id);
}
}
Я также продлил CI_Controller в заявке/ядро / MY_Controller следующим образом:
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('User_model');
}
}
Я автоматически загружаются соединения с базой данных в Applic ция/конфигурация/autoload.php как:
$autoload['libraries'] = array('database');
без загрузки User_model в контроллере я смог запустить миграцию, поэтому соединение с базой данных настроено правильно. Но когда я добавил $ this-> load-> model ('User_model'), я получаю сообщение об ошибке «Undefined property: User_model :: $ db».
Если я разрешаю User_model расширять CI_Model, он запускается без ошибок и с var_dump на контроллере домашней страницы показывает, что база данных автоматически загружается. Но как только я помещаю MY_Model между ними, класс базы данных не определен в модели, а также $ this-> load в модели возвращает NULL, поэтому кажется, что модель не построена должным образом.
Я могу только представить, что это очень маленькая ошибка, но я смотрел на нее часами с несколькими перерывами между ними, и я просто не вижу этого. Может ли кто-нибудь еще мне помочь?