Lighthouse GraphQL - 如何将数组作为变量传递?
Lighthouse GraphQL - how to pass array as variable?
我正在努力构建一个简单的 Facebook 克隆来积累我对 GraphQL 的了解。我在 Laravel 之上使用 lighthouse-php 来提供我的数据。从本质上讲,一个用户有很多朋友,我知道这是可行的,因为在修补程序控制台中,我可以 return 使用 $user->friends()->get()
之类的东西来获得正确的数据。我正在努力弄清楚如何传递一组数据。
在我的前端,我有一个 Vuetify 组合框(基本上是一个 select 下拉列表),它构建了一个电子邮件数组,这就是我试图传递给我的后端突变的内容。
如何构造类型和变异以使其接受电子邮件数组?
user.graphql:
extend type Mutation @guard(with: ["api"]) {
addFriends(input: [AddFriendsInput]! @spread): [User]! @field(resolver: "UserMutator@addFriends")
}
type User {
id: ID!
email: String!
password: String!
first_name: String
last_name: String
created_at: DateTime!
updated_at: DateTime!
friends: [User]! @belongsToMany(relation: "friends")
}
input AddFriendsInput {
email: String!
}
addFriend.gql:
mutation AddFriends($friends: [AddFriendsInput]!) {
addFriends(input: { email:[$friends] }){
id
email
}
}
好的,终于明白了。
将输入修改为:
input AddFriendsInput {
email: String!
# friends: [User]
}
并将我的 Mutation 更改为:
mutation AddFriends($friends: [AddFriendsInput]!) {
addFriends(input: $friends) {
id
email
}
}
这让我现在可以将一组电子邮件传递给我的解析器。
我正在努力构建一个简单的 Facebook 克隆来积累我对 GraphQL 的了解。我在 Laravel 之上使用 lighthouse-php 来提供我的数据。从本质上讲,一个用户有很多朋友,我知道这是可行的,因为在修补程序控制台中,我可以 return 使用 $user->friends()->get()
之类的东西来获得正确的数据。我正在努力弄清楚如何传递一组数据。
在我的前端,我有一个 Vuetify 组合框(基本上是一个 select 下拉列表),它构建了一个电子邮件数组,这就是我试图传递给我的后端突变的内容。
如何构造类型和变异以使其接受电子邮件数组?
user.graphql:
extend type Mutation @guard(with: ["api"]) {
addFriends(input: [AddFriendsInput]! @spread): [User]! @field(resolver: "UserMutator@addFriends")
}
type User {
id: ID!
email: String!
password: String!
first_name: String
last_name: String
created_at: DateTime!
updated_at: DateTime!
friends: [User]! @belongsToMany(relation: "friends")
}
input AddFriendsInput {
email: String!
}
addFriend.gql:
mutation AddFriends($friends: [AddFriendsInput]!) {
addFriends(input: { email:[$friends] }){
id
email
}
}
好的,终于明白了。
将输入修改为:
input AddFriendsInput {
email: String!
# friends: [User]
}
并将我的 Mutation 更改为:
mutation AddFriends($friends: [AddFriendsInput]!) {
addFriends(input: $friends) {
id
email
}
}
这让我现在可以将一组电子邮件传递给我的解析器。