【发布时间】:2017-02-23 04:56:40
【问题描述】:
我使用的是 v1.4.2.18 版本。该库可以在这里找到:https://github.com/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 方法返回具有 id 字段的 ArticleType。
但是我得到的是一个错误:
Fatal error: Uncaught Error: Call to undefined method ArticleField::getNullableType() in .../vendor/youshido/graphql/src/Execution/Processor.php on line 135
似乎正在发生的事情是,当调用 src/Execution/Processor.php 中第 135 行的 $targetField->getType() 时,它返回了 ArticleField 类,而不是 ArticleType 类。
我希望返回在 ArticleField 类的“getType”方法中声明的类。
我在嵌套字段时会犯这个错误吗?还是库有bug?
【问题讨论】: