Model Sequelize添加到连接表实例的特殊方法/混合
我的应用程序中设置了以下型号:Model Sequelize添加到连接表实例的特殊方法/混合,model,sequelize.js,associations,nodes,Model,Sequelize.js,Associations,Nodes,我的应用程序中设置了以下型号: Model Team -> Junction Model GameTeam Model Game -> 多亏了这一点,我能够使用特殊方法/mixin如game1.addTeam(team1)等。这是预期的工作 接下来,我需要创建另一个多对多关联(包括上面的连接表): 也可以像这样使用特殊方法/mixin吗 const gameTeam1 = await game1.getTeams({ where: {
Model Team ->
Junction Model GameTeam
Model Game ->
多亏了这一点,我能够使用特殊方法/mixin
如game1.addTeam(team1)
等。这是预期的工作
接下来,我需要创建另一个多对多关联(包括上面的连接表):
也可以像这样使用特殊方法/mixin
吗
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);
谢谢我想
game1.getTeams
返回团队模型,而不是GameTeam模型。唯一的方法是这样做?:const gameTeam1=wait GameTeam.findOne({where:{GameId:1,TeamId:1});在这种情况下,我必须对原始ID进行编辑?或者添加这样的关联:Game.hasMany(GameTeam)
,不幸的是,它不起作用。我会坚持传递原始ID。谢谢你的帮助@安纳托利
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);