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

Nat*_*kin 5 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!
}
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

小智 3

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