如何在Sequelize中使用新关联更新模型?该模型是多对多的连接表。我试过这个:
app.patch('/api/team/:id/newplayers', function(request, response){
const players = request.body.players
db.teams.findOne({
where: {id: request.params.id},
include: [{model: db.players}, {model: db.tournaments}]
}).then(team => {
return team.updateAttributes(players).then(updatedTeam => {
response.json(updatedTeam)
})
})
})
但这不起作用。它也没有任何错误。它只是不更新“玩家”。
我是否必须直接搞乱联接表?我以为Sequelize会为你做很多事吗?我的大脑疼了:(
答案 0 :(得分:0)
我认为你必须删除所有旧玩家并添加新玩家。或者更复杂的是,您必须将旧的与新的进行比较。插入不存在/已编辑的内容。
最简单的方法是删除所有旧的并添加新的。像。的东西。
.then(team => {
return db.players.destroy({
where: { id: team.players.map(player => player.id) }
}).then(() => team)
}).then(team => {
// should add team id to the players object
return db.players.bulkCreate(players).then(updatedTeam => {
response.json(updatedTeam)
})
})