Почему вызов addIncludePath из себя имеет разные результаты, чем от JModelLegacy

Я пытаюсь получить экземпляр модели com_menus из моего компонента. Работает следующий код:

JModelLegacy::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_menus/models/');
$model = self::getInstance('Item', 'MenusModel');

и дает мне экземпляр модели элемента меню, которую я могу манипулировать по мере необходимости, но этот код

self::addIncludePath(JPATH_ADMINISTRATOR . '/components/com_menus/models/');
$model = self::getInstance('Item', 'MenusModel');

не дает мне модель, она просто дает мне false.

Моя модель компонента расширяет JModelList. В моей модели, если я вызываю self::addIncludePath, у меня получается другой результат, чем при вызове JModelLegacy::addIncludePath, даже считал статическую функцию addIncludePath одинаковой (JModelList является псевдонимом для ListModel, который расширяет BaseDatabaseModel, который определяет статическую функцию addIncludePath и JModelLegacy является псевдонимом BaseDatabaseModel).

Выполняется тот же статический метод, но ясно, что контекст влияет на результат, но я не понимаю, почему.

Почему вызов одного и того же статического метода двумя разными способами дает два разных результата?

Каков правильный /предпочтительный способ создания экземпляра модели основного компонента с помощью компонента, который я разрабатываю? Кажется странным по-прежнему использовать JModelLegacy.

2 голоса | спросил Dom 7 Maypm18 2018, 15:27:08

0 ответов


Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132