При запросе глобальных переменных из интерфейса 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, однако я не уверен.
Эта ошибка означает, что ваш запрос getSetById () ничего не возвратил. Вы также не передали бы UUID. Ожидается int. Вы уверены, что ваша переменная $ siteId верна? Если вы хотите избежать ошибок, вы можете добавить это в свой код:
foreach ($setIds as $id) {
if ($set = \Craft::$app->globals->getSetById($id, $siteId)) {
$sets[$set->handle] = $set;
}
}
Но я бы посоветовал взглянуть на $ siteId или вообще удалить его.
Других решений пока нет …