创建一个采用 ENUM 的多个值的突变

Create a mutation which takes multiple values of an ENUM

我创建了一个模型,其中有一个字段接受 ENUM 的多个值。我如何编写一个允许我一次添加多个值的突变?

例如,我有一个注册突变:

export const signUp = gql`
  mutation signUp(
    $email: String!,
    $name: String!,
    $password: String!,
    $attended: [USER_ATTENDED!]!,
    $role: [USER_ROLE!]!,
  ) {
    createUser(
      authProvider: {
        email: {
          email: $email,
          password: $password,
        },
      },
      name: $name,
      attended: $attended,
      role: $role,
    ) {
      id,
      createdAt,
      name,
      email,
    }
  }
`;

我希望 $attended$role 接受多个值。

您可以使用方括号传递多个值:[]。在您的情况下,GraphiQL 中的变量需要像这样:

{
  "email": "name@email.com",
  "name": "Name",
  "password": "secret",
  "attended": ["A", "B"],
  "role": ["ROLE_A", "ROLE_B"]
}

在 Apollo 中,这应该有效:

const variables = {
  email: "name@email.com",
  name": "Name",
  password: "secret",
  attended: ["A", "B"],
  role: ["ROLE_A", "ROLE_B"]
}

提供了有关 GraphQL 变量的更多信息here and here