Laravel Lighthouse-按关系的属性对查询进行排序

时间:2020-01-27 14:40:51

标签: php laravel graphql laravel-lighthouse

使用如下所示的架构,是否可以执行查询并按name实体的JobType属性对结果进行排序?我想要一个分页的作业列表,并按字母顺序显示按作业类型名称排序的结果。

extend type Query @middleware(checks: ["auth:api"]) {
    jobs(orderBy: _ @orderBy): [Job!]! @paginate(defaultCount: 10, model: "App\\Job")
}

type Job {
    id: ID!
    description: String!
    job_type: JobType! @belongsTo
}

type JobType {
    id: ID!
    name: String!
}

我尝试使用@builder指令,然后在构建器中使用联接以这种方式带来name属性,但这似乎会导致实体ID出现一些问题,从而导致关系链接到错误的事情。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您提到的@builder是一个很好的解决方案。解决导致实体ID问题的问题的解决方法是在构建器中传递->select('model.*')。这样,它将只返回您要查询的模型的数据,并仍然按关系排序。