如何使用Lighthouse在Laravel 5.8中使用字段值过滤Graphql查询

时间:2019-07-19 15:03:49

标签: laravel graphql laravel-lighthouse

我有可以创建列表的用户。列表可以加星标(如果您愿意,可以加“精选”)。我想在Lighthouse / Laravel中建立一个Graphql查询,该查询将检索给定用户的所有加星标/功能列表。

我尝试了此查询,它的工作原理是:


clistsByStarred(user_id: Int! @eq, starred: Boolean! @eq): [Clist] @all

然后我可以这样使用它:

query {
  clistsByStarred(user_id: 1, starred: true) {
      id
      name
      starred
    }
}

但是对我来说这就像是个肮脏的黑客。

我想实现的是:

query {
   user(id: 1) {
     id
     name
     clistsByStarred {
       id
       name
       starred
     }
   }
 }

关于如何实现它的任何想法?

1 个答案:

答案 0 :(得分:1)

type User {
 id: ID!
 clists(starred: Boolean @eq): Clist @hasMany

此示例为您提供了具有Clist类型列表的用户类型。 然后,您只需在查询中添加一个字段即可按ID获得一个用户。

查询时,您可以指定加星号的参数仅获得加星号。

要使其正常工作,必须在雄辩的模型上建立关系。 https://lighthouse-php.com/master/eloquent/relationships.html