JavaScript — CraftCMS — глобальные запросы CraftQL всегда возвращают ошибку

При запросе глобальных переменных из интерфейса GraphiQl, из моего внешнего интерфейса или из проводника API, такого как Insomnia, CraftQL возвращает ошибку Trying to get property of non-object,

Я использую Craft 3.1.8 и CraftQL 1.3.1.

query getGlobalTest {
globals {
... on GlobalsSet {
test {
... on Test {
test
}
}
}
}
}

Ошибка возникает в vendor/markhuot/craftql/src/Types/Query.php по линии 215.

foreach ($setIds as $id) {
$set = \Craft::$app->globals->getSetById($id, $siteId);
$sets[$set->handle] = $set;  <-- Error line
}

Это происходит при запросе чего-либо в глобальных переменных. Я где-то читал, что это связано с обновлением Craft до UUID в Craft 3.1, однако я не уверен.

0

Решение

Эта ошибка означает, что ваш запрос getSetById () ничего не возвратил. Вы также не передали бы UUID. Ожидается int. Вы уверены, что ваша переменная $ siteId верна? Если вы хотите избежать ошибок, вы можете добавить это в свой код:

foreach ($setIds as $id) {
if ($set = \Craft::$app->globals->getSetById($id, $siteId)) {
$sets[$set->handle] = $set;
}
}

Но я бы посоветовал взглянуть на $ siteId или вообще удалить его.

0

Другие решения

Других решений пока нет …