Я использую MAMP для локального размещения моего проекта codeigniter. Каждый из моих контроллеров расширяет MY_Controller. MY_Controller выглядит следующим образом:
class MY_Controller extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('user_model');
$this->user_model->do_something();
}
}
Используя MAMP, на моем macbook это работает отлично. Однако, когда я загружаю свой сайт на свой Linux-сервер под управлением apache, я получаю следующую ошибку:
Unable to locate the model you have specified: User_model
Зачем?
ОБНОВИТЬ
Я изменил капитализацию таким образом:
$this->load->model('User_model');
$this->User_model->do_something();
и проблема продолжается
Linux - это чувствительная к регистру операционная система, и поэтому вы должны быть очень осторожны при разработке в Windows и развертывании в Linux.
Ваша проблема проистекает из строки:
$this->user_model->do_something();
Что должно быть:
$this->User_model->do_something();
Поскольку это имя объекта, к которому вы пытаетесь получить доступ.
Строка, которая загружает его, прекрасна, поскольку CodeIgniter не против, какой случай вы используете для загрузки моделей, но PHP будет немного придирчивым к Linux, когда дело доходит до имен вещей.