Я обыскал весь Интернет, и либо никто не упомянул мою проблему, либо я тупой, либо, возможно, это просто плохой день для кодирования.
Какова ситуация:
- контроллер "источник"
- модель "источник"
- модель "логин"
Модель входа в систему загружается из autoload.php , затем в конструкторе каждого контроллера у меня есть $ this-> login-> check () , который проверяет, является ли пользователь вошел в систему (очевидно). Затем в некоторых методах я использую модель «источник» для подключения к базе данных.
Я попытался загрузить обе модели из массива автозагрузки, я также попытался загрузить их, как описано здесь , но это очевидно для старой версии CI (поток от 2008), и я перепробовал все возможные способы, которые я имел в виду.
В любом случае, результат таков:
Произошла ошибка PHP
Серьезность: Уведомление
Сообщение: неопределенное свойство: Source :: $ login
Имя файла: controllers / source.php
Номер строки: 10
Неустранимая ошибка: вызов функции-члена check () для необъекта в ... \ application \ controllers \ source.php в строке 10
Есть идеи, что мне не хватает или как это исправить ...? Я застрял на несколько часов, и у меня нет никаких идей, что я мог бы сделать ...
Редактировать 1 : вот код из «исходного» контроллера:
Источник класса расширяет CI_Controller {
function __construct() {
parent::__construct();
$this->load->model('login');
$this->login->check();
}
function index() {
// Pagination config, getting records from DB
$this->load->view('templates/layout', $data);
}
function add() {
$this->load->model('source', '', true);
$btn = $this->input->post('btn');
if(isset($btn)) {
// More form validation
if($this->form_validation->run() == TRUE) {
if($btn == "Add") {
// here I am supposed to use the source model...
}
}
}
$data['page'] = 'source_add';
$this->load->view('templates/layout', $data);
}
}
?>
Редактировать 2: login.php :
класс Логин расширяет CI_Model {
function __construct() {
parent::__construct();
}
function authenticate($username, $password) {
// the login script comes here
}
function logged() {
if($this->session->userdata('logged') == true) {
return true;
} else return false;
}
function check() {
if(!$this->logged()) {
redirect('/authentication');
}
}
}
?>