2013-06-03 3 views
0

Я нахожусь на этом.CodeIgniter Extended Core Controller

С моим приложением CodeIgniter, установленным на сервере WAMP локально, все в порядке. Все мои классы расширяют мой контроллер (MY_Controller)

Однако, когда приложение находится в живой среде, основанной на Linux, оно выдает ошибку, которой не существует класс MY_Controller.

Я забыл о переменной конфигурации где-то или что-то в этом роде с путём к папке приложения/ядра?

Я искал другие темы с той же проблемой в Google, нашел решение, которое работало для большинства людей с использованием parent::Controller(); вместо parent::__construct(), но это не разрешает это для меня.

+0

Вы уверены, контроллер правильно установлен в приложении/ядро, с правильным именем файла, имя класса и продолжается заявление? –

+0

Да, это в правильной папке, правильное имя файла (MY_Controller.php) и имя класса (MY_Controller) и отлично работает на локальном сервере WAMP, тот же самый код (минус некоторые константы конфигурации) на сервере на основе Linux возвращает это ошибка. Я временно обошел это, включив контроллер ядра во все контроллеры, но это не идеально. – Ryan

+0

Тогда подумайте об этом один раз. Он * должен * работать ... Кроме того, parent :: Controller(); является псевдонимом parent :: __ construct(), afaik. Он не должен влиять на функциональность. –

ответ

2

Возможно ли, что случай с файлом неверен (например, My_controller вместо My_Controller), и ваша сетевая среда чувствительна к регистру, а ваша локальная среда является case_insensitive. У меня была эта проблема много.

+0

О, да, ты прибил это, я думаю. WAMP - это Windows-основанный, не так ли? Поэтому было бы неважно, какое имя файла вы используете. –

+0

Это может быть так, но мои стандартные контроллеры имеют имена файлов в нижнем регистре и имена верхнего регистра (например, firstcontroller.php является классом FirstController), так почему это повлияет только на основной контроллер? – Ryan

+0

Нет, если вы написали имена в комментарии выше, точно так, как они есть в вашем проекте, вы поняли это правильно. –

0

Извините, что воскресил старый пост, но этот вопрос несколько раз изводил меня.

я решил добавить эту ссылку: codeigniter MY_Controller not found

Только в случае, есть бедная душа, кто стучал голову на стол, и они не приходят через пост выше ранее.

Благодаря Maxime Morin и Фил Осетровые:

function __autoload($class) 
{ 
    if (strpos($class, 'CI_') !== 0) 
    { 
     if (file_exists($file = APPPATH . 'core/' . $class . EXT)) 
     { 
      include $file; 
     } 
    } 
} 
Смежные вопросы