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_';
Другие вопросы по тегам