Я согласен с Jimyi. Ваши вспомогательные и библиотечные классы должны быть независимыми от любого конкретного контроллера в приложении. Например, если у вас есть помощник «заголовок страницы», он не должен зависеть от какого-либо конкретного поведения вашего администратора. Что, если вы хотите использовать помощник по страницам в другом приложении, в котором нет контроллера администратора? Или что, если вы внесете изменения в контроллер администратора в будущем, теперь вы должны убедиться, что эти изменения не сломают вашего помощника.
Если вашей вспомогательной функции требуется какой-то конкретный бит данных, который имеется у администратора, вы можете передать его в качестве параметра функции от контроллера. Таким образом, помощник является зависимостью от контроллера, а не контроллером является зависимость от помощника.
Кроме того, это сообщение об ошибке означает, что все, что вы вызываете, не было должным образом создано. Итак, вы, вероятно, делаете что-то вроде:
$this->load();
изнутри помощника. Однако в помощнике
$this
не определено (следовательно, ошибка «не объект»). CodeIgniter предоставляет способ загрузки моделей, библиотек и представлений вне контроллера. Но, насколько я знаю, это не позволяет вам делать это для контроллеров. Это нормально, хотя, по причинам, указанным выше. Должен быть осторожен, когда вы вводите зависимости.