0

在我的 apollo 项目中,当用户创建项目时,它应该自动创建与其关联的第一个文件夹。

我的架构是这样的:

type Project implements Node {
  id: ID! @isUnique
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  folders: [Folders!]! @relation(name: "ProjectFolders")
}

type Folder implements Node {
  id: ID! @isUnique
  createdAt: DateTime!
  updatedAt: DateTime!
  name: String!
  project: Project @relation(name: "ProjectFolders")
}

所以这个想法是当用户创建一个项目时,它也会创建一个初始文件夹,用户可以稍后添加更多文件夹。天真地,我想做类似的事情:

mutation CreateProjectMutation($name: String!) {
  createProject(name: $name) {
    id
    name
  }

  createFolder(name: $name, $projectId: ?PROJECT_ID?) {
    id
    name
  }
}

正确的方法是什么?

4

1 回答 1

2

在这种情况下,您可以使用嵌套的创建突变createProject,方法是:

mutation CreateProjectMutation($name: String!) {
  createProject(
    name: $name
    folders: [{
      name: $name
    }]
  ) {
    id
    name
    folders {
      id
    }
  }
}

createFolder

mutation CreateFolderMutation($name: String!) {
  createFolder(
    name: $name
    project: {
      name: $name
    }
  ) {
    id
    name
    project {
      id
    }
  }
}

请注意,该参数分别称为folders和。project

于 2017-10-12T21:46:45.000 回答