我使用的是版本v1.4.2.18。可在此处找到该库:https://github.com/Youshido/GraphQL
我正在努力完成以下任务:
FrameGrab.getFrame(new File(videoFileToRetreive.getVideoFile()), currentFrame);
我有一个ArticleSummaryField.php:
query {
articleSummary(id:1) {
title,
body,
article {
id
}
}
}
然后是ArticleSummaryType.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']
];
}
}
然后ArticleField.php让getType方法返回具有class ArticleSummaryType extends AbstractObjectType
{
public function build($config)
{
$config
->addField('title', new StringType());
->addField('body', new StringType());
->addField('article', new ArticleField());
}
}
字段的ArticleType。
然而,我得到的是一个错误:
id
似乎正在发生的事情是,当调用src / Execution / Processor.php中第135行的Fatal error: Uncaught Error: Call to undefined method ArticleField::getNullableType() in .../vendor/youshido/graphql/src/Execution/Processor.php on line 135
时,它返回$targetField->getType()
类,而不是ArticleField
类。
我希望返回在ArticleField类的'getType'方法中声明的类。
我是否会因为筑巢而错误?或者库中是否有错误?
答案 0 :(得分:0)
要完成此操作,您只需将Field类作为第一个参数传递。
class ArticleSummaryType extends AbstractObjectType
{
public function build($config)
{
$config
->addField('title', new StringType());
->addField('body', new StringType());
->addField(new ArticleField());
}
}
然后在字段类中,您可以覆盖getName
以根据需要设置字段的名称,或者使用类名作为字段名称。