Почему не удается найти указанную модель news.php на хостинге?
У меня VPS под управлением Ubuntu 20.04, я поставил туда Apache2, MySql, PHP и все настроил, поставил туда сайт Киномонстр, для того, что бы выполнить последнее задание "Залить на хостинг". Захожу на сайт, а там
Вот такая херь:
An uncaught Exception was encountered
Type: RuntimeException
Message: Unable to locate the model you have specified: News_model
Filename: /var/www/wizard-hacker.ru/system/core/Loader.php
Line Number: 348
Backtrace:
File: /var/www/wizard-hacker.ru/application/core/MY_Controller.php
Line: 6
Function: __construct
File: /var/www/wizard-hacker.ru/application/controllers/Main.php
Line: 7
Function: __construct
File: /var/www/wizard-hacker.ru/index.php
Line: 315
Function: require_once
Не может найти указанную модель. Но:
1) Название файла с заглавной буквы News_model.php в папке model
2) Название класса в модели тоже с заглавной:
class News_model extends CI_Model {
public function __construct(){
$this->load->database();
}
.....
}
В контроллере подгружается вот так:
class News extends MY_Controller {
public function __construct(){
parent::__construct();
$this->load->model('news_model');
}
И все работает только на localhost!!! А на реальном хостинге пишет ошибку!
Все функции сайта я допилил и сделал, осталось только проверить отправку из формы контактов себе на почту. Но когда я заливаю сайт на хостинг - у меня при переходе на сайт пишет ошибку, что не может найти модель News_model!
Я искал решения в интернете и не нашел. Даже в автозагрузку записал эту модель, все равно не котируется! (autoload.php в папке config ) для автоматической подгрузки.
$autoload['model'] = array('news_model');
На домашке мне приходилось ставить XAMPP версии ниже на каком то уроке, что бы что-то работало. Исключительно из-за Apache. Но тут не смотря на все это дело - ошибка отображается, значит сайт работает, просто ошибка в коде. НО ГДЕ?
Код в MY_Controller:
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
$this->data['title'] = "КиноМонтср - сайт о кино";
$this->load->model('news_model');
$this->data['news'] = $this->news_model->getNews();
$this->load->model('posts_model');
$this->data['posts'] = $this->posts_model->getPosts();
$this->load->model('films_model');
$this->data['films'] = $this->films_model->getFilmsByRating(10);
}
}
5 ответов
Только news model не может найти?
Название файла с заглавной буквы News_model.php в папке model
$this->load->model('news_model');
Не уверен, но может дело в регистре? Локальный сайт на Windows развернут? Может переименовать название файла News_model.php, на news_model.php (само название класса не переименовывать).
Ну пока только эта ошибка, если ее исправить - возможно будет и другая. Но пока только News model
Я пробовал менять регистр и в названии файла и в названии класса разом и раздельно - не помогает! Развернут локально был на Windows, сейчас на Ubuntu 20.04 VPS развернул.
Я нашел ошибку, ужас какой-то. Дело было в названии файла. Я не заметил, что News_model.php имеет название не просто с заглавной буквы, а вот такое:
News_Model.php - то есть второе слово Model было тоже с заглавной! Черт подери почти целый день на поиск проблемы ушел! Я уже на тостере начал писать эту проблему со всеми скриншотами и заметил на скриншоте эту опечатку! Фуууух.