model - Sequelize 添加到联结表实例的特殊方法/mixin
问题描述
我的应用程序中设置了以下模型:
Model Team ->
Junction Model GameTeam
Model Game ->
多亏了这一点,我可以使用special methods/mixins
likegame1.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);
谢谢
解决方案
推荐阅读
- php - 我正在尝试创建搜索字段
- android - 使用正则表达式和 Kotlin 获取字符串中模式的索引
- python - PyQt - 如何在不关闭对话框窗口的情况下停止执行
- css - 移动友好的 Bootstrap 面包屑标签
- arrays - 在不更改输入的情况下在数组中查找重复项?
- c++ - 字节序会导致读取或写入操作冲突吗?
- systemctl - 从 setuid root 程序运行“systemctl restart ___”而不询问 root 密码?
- python - 获取pandas groupby中组的所有值
- php - puPHPeteer 在无头模式下使用时会永远占用
- visual-studio-code - VScode 自动激活 conda 环境