没有模型的Laravel灯塔分页



是否有一种方法可以使用@paginate指令从lighthouse-php不从模型查询数据?比方说,我使用第三方库来使用api或其他方式查询数据。

幸运的是,最近才添加了这样一个功能:https://github.com/nuwave/lighthouse/pull/2232。此PR增加了对从@paginator指令中的resolver选项返回Paginator中的数据的支持。

您可以提供自己的函数,通过直接返回IlluminateContractsPaginationPaginator实例中的数据来解析字段。

buildermodel互斥。不兼容scopes@eq等构建器参数。

type Query {
posts: [Post!]! @paginate(resolver: "App\GraphQL\Queries\Posts")
}

自定义解析器函数可能如下所示:

namespace AppGraphQLQueries;
use IlluminatePaginationLengthAwarePaginator;
final class Posts
{
/**
* @param  null  $root Always null, since this field has no parent.
* @param  array{}  $args The field arguments passed by the client.
* @param  NuwaveLighthouseSupportContractsGraphQLContext  $context Shared between all fields.
* @param  GraphQLTypeDefinitionResolveInfo  $resolveInfo Metadata for advanced query resolution.
*/
public function __invoke($root, array $args, GraphQLContext $context, ResolveInfo $resolveInfo): LengthAwarePaginator
{
//...apply your logic
return new LengthAwarePaginator([
[
'id' => 1,
'title' => 'Flying teacup found in solar orbit',
],
[
'id' => 2,
'title' => 'What actually is the difference between cookies and biscuits?',
],
], 2, 15);
}
}

(文档目前没有得到正确的更新,这就是为什么你可能没有发现这个。我正在恢复部署

相关内容

  • 没有找到相关文章

最新更新