首页 > 解决方案 > Sequelize 添加到联结表实例的特殊方法/mixin

问题描述

我的应用程序中设置了以下模型:

Model Team ->
               Junction Model GameTeam
Model Game ->

多亏了这一点,我可以使用special methods/mixinslikegame1.addTeam(team1)等。这按预期工作。

接下来,我需要创建另一个多对多关联(包括上面的联结表):

Model Player   ->
                  Junction Model PlayerGameTeam
Model GameTeam ->

是否也可以special methods/mixins像这样使用?:

const gameTeam1 = await game1.getTeams({
    where: {
        id: 1
    }
});

gameTeam1.addPlayer(player1)?

我无法使它工作。我得到的错误:

UnhandledPromiseRejectionWarning: TypeError: gameTeam1.addPlayer is not a function

我的代码:

Team.belongsToMany(Game, { through: GameTeam });
Game.belongsToMany(Team, { through: GameTeam });

Player.belongsToMany(GameTeam, { through: PlayerGameTeam });
GameTeam.belongsToMany(Player, { through: PlayerGameTeam });

...

const game1 = await Game.findOne({
      where: {
          id: 1
      }
  });

  const team1 = await Team.findOne({
      where: {
          id: 1
      }
    });

const player1 = await Player.findOne({
    where: {
        id: 1
    }
});

await game1.addTeam(team1);

const gameTeam1 = await game1.getTeams({
    where: {
        id: 1
    }
});

await gameTeam1.addPlayer(player1);

谢谢

标签: modelsequelize.jsassociationsnodes

解决方案


推荐阅读