laravel - 如何使用 Lighthouse 在 Laravel 5.8 中使用字段值过滤 Graphql 查询
问题描述
我有可以创建列表的用户。列表可以加星标(如果您愿意,可以选择“精选”)。我想在 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
}
}
}
关于如何实施它的任何想法?
解决方案
type User {
id: ID!
clists(starred: Boolean @eq): Clist @hasMany
此示例为您提供了具有 Clist 类型列表的用户类型。然后,您只需在查询中添加一个字段即可通过 id 获取单个用户。
当您查询此内容时,您可以指定参数starred 以仅获得starred。
为此,该关系必须存在于您的雄辩模型上。 https://lighthouse-php.com/master/eloquent/relationships.html
推荐阅读
- javascript - href 点击触发选择选项的下拉菜单
- docker - 没有基本的身份验证凭据 - `docker push image_name`
- c# - 当 TextBox 失去焦点时在 ViewModel 中运行函数?
- java - Spring @Component 未正确读取 .properties 字段
- android - 从私人游戏商店 iFrame 中删除应用程序
- c# - 为什么这条 MVC 路线不起作用(ASP.Net Core 2.2)
- azure-api-management - 如何在 Azure API 管理的 set-body 中引发异常?
- powershell - 检查开关参数的正确方法是什么
- python - 使用 z3Py 证明两个表达式范围的等价/不同
- operating-system - VirtualBox上PCI Express(PCIe)配置空间访问问题