CraftCMS - запрос глобальных запросов CraftQL всегда возвращает ошибку - PullRequest
0 голосов
/ 11 февраля 2019

При запросе глобальных переменных из интерфейса 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, однако я не уверен.

1 Ответ

0 голосов
/ 11 февраля 2019

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

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

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

...