1 回答
TA贡献1752条经验 获得超4个赞
您必须知道您希望收到什么回应。在解析器中,您必须返回一个数组,因此在您的示例中只需返回一个数组return $data
。
那么问题来了,你期望什么...
您期望得到一个字符串化的 JSON。然后你可以使用 JSON 标量定义
mll-lab/grpahql-php-scalars
您期望 JS 对象方式的 JSON。然后你必须使用不同的 JSON 标量定义。
对您来说还有一个小改进:查询和突变不需要@field
指令。如果您将字段的 CamelCased 名称放置在特定名称空间中(App\GraphQL\Queries
对于查询字段和App\GraphQL\Mutations
突变字段。这些是默认值,您可以在配置中更改它们),Lighthouse 可以自动为您找到解析器。
所以对于你的例子你可以简单地写
type Mutation {
getJson(data: CustomInput): JSON
}
<?php
namespace App\GraphQL\Mutations;
class GetJson
{
public function __invoke($rootValue, array $args, GraphQLContext $context, ResolveInfo $resolveInfo)
{
$data = array('msg'=>'hellow world', 'trueorfalse'=>true);
return $data;
}
}
- 1 回答
- 0 关注
- 167 浏览
添加回答
举报