0

我正在使用graphcool/graphql并想添加PlayerTeam. 我的架构如下所示:

type Team @model {
  id: ID! @isUnique
  name: String
  players: [Player!]! @relation(name: "TeamPlayers")
  fixtures: [Fixture!]! @relation(name: "TeamFixtures")
  results: [Result!]! @relation(name: "TeamResults")
}

type Player @model {
    id: ID! @isUnique
    name: String!
    gamesPlayed: Int!
    goalsScored: Int!
    yellowCards: Int!
    redCards: Int!
    photo: String!
    team: Team! @relation(name: "TeamPlayers")
}

我正在做以下突变:

mutation {
      createPlayer(
      name: "Peter Flanagan",
      gamesPlayed: 1,
      yellowCards: 0,
      redCards: 1,
      goalsScored: 4,
      photo: "http://cdn2-www.craveonline.com/assets/uploads/2017/02/bret1.png",
      team: {
        name: "Man United"
      }
    ) {
        id
      }
}

这按预期工作,但如果我进行另一个突变,如下面的那个,第二个团队,也叫Man United一个新的id.

mutation {
      createPlayer(
      name: "Eric Cantona",
      gamesPlayed: 1,
      yellowCards: 0,
      redCards: 1,
      goalsScored: 4,
      photo: "http://cdn2-www.craveonline.com/assets/uploads/2017/02/bret1.png",
      team: {
        name: "Man United"
      }
    ) {
        id
      }
}

谁能建议我如何避免这个问题并将两个Players 添加到相同的位置Team

4

1 回答 1

2

通过这种方式,您始终可以通过创建新Team的来创建新的Player。如果您想将玩家连接到团队。先创建team并获取teamId. teamId然后,您可以创建与团队相关的突变,如下所示:

mutation {
  createPlayer(
  name: "Peter Flanagan",
  gamesPlayed: 1,
  yellowCards: 0,
  redCards: 1,
  goalsScored: 4,
  photo: "http://cdn2-www.craveonline.com/assets/uploads/2017/02/bret1.png",
  teamId: "TEAM_ID"
) {
    id
  }
}
于 2018-01-15T22:21:02.907 回答