Joomla 4: вызов функции-члена setState () для логического значения - PullRequest
0 голосов
/ 10 мая 2019

Я готовлю один из моих модулей для работы с Joomla 4, используя ночные сборки. Я столкнулся с проблемой, которой у меня не было с 3.9. Я вызываю функцию setState для модели статьи и получаю следующее исключение:

«Вызов функции-члена setState () для логического значения»

$ appParams не пустые или что-то еще. Код также указан ниже, отмечена строка, где происходит исключение.

// Get an instance of the generic articles model
$model = JModelLegacy::getInstance('Articles', 'ContentModel', array('ignore_request' => true)); // This returns false instead of the model!

// Set application parameters in model
$app       = JFactory::getApplication();
$appParams = $app->getParams();
$model->setState('params', $appParams);

// Set the filters based on the module params
$model->setState('filter.published', 1);
$model->setState('filter.article_id', $articleIds);
$model->setState('filter.category_id', $params['eventlist_categories']);

Наблюдал ли я за какой-то устаревшей функцией или около того? Спасибо за вашу помощь!

--- Редактировать ---

Я обнаружил, что JModelLegacy :: getInstance () возвращает false - так что, возможно, есть новый способ получить модель статьи в Joomla! 4, верно?

1 Ответ

1 голос
/ 11 мая 2019

Извините, ранее я привел вам пример, который я случайно протестировал только в Joomla 3.9, и чуть позже понял, что он больше не действует в Joomla 4. Итак, вот рабочая версия, которую я только что протестировал.в Joomla 4:

$model = $app->bootComponent('com_content')->getMVCFactory()->createModel('Articles', 'Administrator', ['ignore_request' => true]);

Очевидно, что «Администратор» может быть изменен на «Сайт», в зависимости от того, какую модель мы хотим использовать.

В Joomla 4 похоже, что MVCFactoryInterface должениспользоваться для создания и работы с экземплярами моделей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...