yii CraftCMS - CraftQL查询全局始终返回错误

5f0d552i  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(130)

当从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
        }
      }
    }
  }
}

错误发生在第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有关,但是,我不确定。

3ks5zfa0

3ks5zfa01#

这个错误意味着getSetById()查询没有返回任何结果。您也不会向它传递UUID。它需要一个int。您确定您的$siteId变量是正确的吗?如果您想避免错误,可以在代码中添加以下内容:

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

但我建议您查看一下$siteId,或者将其完全删除。

相关问题