2015-05-22 2 views
1

Я использую MAMP для локального размещения моего проекта codeigniter. Каждый из моих контроллеров расширяет MY_Controller. MY_Controller выглядит следующим образом:Сайт Codeigniter, работающий в MAMP, но не LAMP

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 

Почему?

UPDATE

Я изменил капитализацию быть таким:

$this->load->model('User_model'); 
$this->User_model->do_something(); 

и проблема продолжает

+0

Попробуйте изменить название файла модели, чтобы оно соответствовало капитализации в сообщении. – Tpojka

ответ

0

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

Ваш вопрос вытекает из линии:

$this->user_model->do_something(); 

Что должно быть:

$this->User_model->do_something(); 

Как это имя объекта, который вы пытаетесь получить доступ.

Линия, которая загружает это нормально, поскольку CodeIgniter не против, какой случай вы используете для загрузки моделей, но PHP будет немного придирчивым к Linux, когда дело доходит до имен вещей.

+0

Я изменил капитализацию, и проблема продолжается. Он работает на моем Mac, работающем с MAMP, но он дает мне то же сообщение об ошибке в linux. – trentjones21