当从GraphiQl界面查询全局变量时,从我的前端应用程序,或者从像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
}
}
}
}
}错误出现在第215行的vendor/markhuot/craftql/src/Types/Query.php中。
foreach ($setIds as $id) {
$set = \Craft::$app->globals->getSetById($id, $siteId);
$sets[$set->handle] = $set; <-- Error line
}在全局变量中查询任何内容时都会发生这种情况。我在某处读到,这与Craft 3.1中的Craft更新到UUID有关,然而,我不确定。
发布于 2019-02-12 04:27:00
这个错误只是意味着您的getSetById()查询没有返回任何内容。您也不会将UUID传递给它。它需要一个int。您确定您的$siteId变量正确吗?如果您想避免错误,可以将以下代码添加到您的代码中:
foreach ($setIds as $id) {
if ($set = \Craft::$app->globals->getSetById($id, $siteId)) {
$sets[$set->handle] = $set;
}
}但我建议看看$siteId,或者干脆把它去掉。
https://stackoverflow.com/questions/54635491
复制相似问题