Codeigniter: пользовательская вспомогательная функция не загружается
Я сделал специальный помощник, расширяющий систему string_helper.php.
Я положил его в свой /application/helpers
каталог, называется это MY_string_helper.php
по мере необходимости, юнит тестировал свои функции.
Теперь, когда я пытаюсь вызвать одну из ее функций из модели, она не работает.
Вместо этого работают функции в помощнике по умолчанию для строк. Похоже, мое расширение не загружается по некоторым причинам.
Большое спасибо и счастливых праздников.
Редактировать: еще смешнее. Я сохранил файл как categories_helper.php
в system/helpers
каталог, и когда я пытаюсь загрузить его в модель, я получил следующий ответ: * Невозможно загрузить запрошенный файл: helpers/ Categories_helper.php*
5 ответов
У меня такая же проблема. Я пришел из разработки ОС Windows для моего проекта codeigniter, затем переключился на Ubuntu, но каким-то образом он все еще не загружал моих помощников.
Я обнаружил, что изменение соглашения об именах на строчные решает проблему. Не следуйте тому, что написано в документе, где вам дается префикс для вставки, особенно если он в верхнем регистре. Используйте строчные буквы.
Linux чувствителен к регистру, Windows нет. Итак, если вы разрабатываете в ОС Windows, прежде чем загружать свою систему на примере хостинга Linux, вам нужно иметь имена файлов в нижнем регистре.
Например:
В Windows: application / helpers / MY_functions_helpers.php
В Linux: application / helpers / my_functions_helpers.php
Руководство пользователя Codeigniter для помощников описывает, что помощники доступны только для контроллеров и представлений. В нем прямо не упоминается, что вспомогательные функции работают в моделях.
CodeIgniter не загружает вспомогательные файлы по умолчанию, поэтому первым шагом при использовании вспомогательного файла является его загрузка. После загрузки он становится глобально доступным в вашем контроллере и представлениях.
Ммм, я не уверен, что он будет работать для помощников, но вы пытались загрузить помощника таким образом?
$CI = & get_instance();
$CI->load->helper('string');
Вам просто нужно изменить имя вспомогательной функции на свой префикс, как в application / config / config.php
после переименования помощника убедитесь, что он содержит только маленькие буквы
затем измените файл автозагрузки с именем функции, которое вы переименовали,
Основная проблема из-за ОС, такой как ваш хост-сервер, - это Linux, и вы разрабатываете с Windows, поэтому эта проблема возникает
Я столкнулся с подобной ситуацией. Моя среда разработки была WINDOWS, и она работала нормально, как описано в DOC, т.е. MY_string_helper.php
В производственной среде UNIX это выдало ошибку:
Невозможно загрузить запрошенный файл: helpers/my_form_helper.php
Изменение имени файла в нижний регистр разрешило эту ошибку, НО помощник фактически не был загружен.
После большого количества потраченного времени, при ударе и следе это сработало [ недокументировано ]
В autoload.php просто включите упоминание расширенного помощника перед помощником по умолчанию:
$autoload['helper'] = array('my_string', 'string');
Кроме того, префикс имеет заглавную букву, он не работает с префиксом нижнего регистра:
$config['subclass_prefix'] = 'MY_';