Я использую версию v1.4.2.18. Библиотеку можно найти здесь: https://github.com/Youshido/GraphQLPHP Youshido Проблема GraphQL с вложенными полями
Я пытаюсь выполнить следующие действия:
query {
articleSummary(id:1) {
title,
body,
article {
id
}
}
}
У меня есть ArticleSummaryField.php:
class ArticleSummaryField extends AbstractField
{
public function build(FieldConfig $config)
{
$config->addArgument('id', new NonNullType(new StringType()));
}
public function getType()
{
return new ArticleSummaryType();
}
public function resolve($value, array $args, ResolveInfo $info)
{
return [
'title' => 'test title',
'body' => 'test body',
'article' => $args['id']
];
}
}
Тогда ArticleSummaryType.php:
class ArticleSummaryType extends AbstractObjectType
{
public function build($config)
{
$config
->addField('title', new StringType());
->addField('body', new StringType());
->addField('article', new ArticleField());
}
}
Затем метод ArticleField.php имеет метод getType, который возвращает тип ArticleType whi ch имеет поле id
.
Однако то, что я получаю ошибку:
Fatal error: Uncaught Error: Call to undefined method ArticleField::getNullableType() in .../vendor/youshido/graphql/src/Execution/Processor.php on line 135
То, что кажется, происходит то, что, когда $targetField->getType()
на линии 135 в ИПВ/Execution/Processor.php называется его возвращение ArticleField
класс, а не ArticleType
класс.
Я бы ожидал, что вернет класс, объявленный в методе getType в классе ArticleField.
Я собираюсь сделать это неправильно для гнездования полей? Или есть ошибка в библиотеке?