AFAIK, нет возможности выбрать приоритет загрузки, и я думаю, что взломать ядро просто, чтобы избежать написания строки, немного ... выключено.
Мне пришлось искать основную систему, чтобы лучше понять, как все работает. Похоже, библиотеки загружаются перед моделями, поэтому вы правы, когда говорите, что вам нужно загрузить модель перед вызовом одного из ее методов (хотя я не проверял, но думаю, что это работает так).
Я не знаю, почему это делается, но пока единственное решение, которое я вижу, это изменить себя в порядке загрузки, но я предупреждаю вас: я думаю, что если все работает таким образом, есть причина для КИ разработчики подумали; это может иметь недостатки, которые вы не можете сказать, поэтому всегда будьте готовы к недостатку в случае, если вы обнаружите проблемы.
Это решение является немного спекулятивным и не гарантировано, я буду признателен за ваш отзыв, поскольку я не могу сейчас создать среду тестирования, чтобы доказать это
Перейдите к файлу system/core/loader.php
около строки 1166 (метод _ci_autoloader()
), где проверяется индекс «библиотеки» массива $autoload
, и поменяйте его позицию проверкой индекса «модели», которая находится около строка 1183.
И удачи:)