我有以下表格:
Event
Tasks
以及以下关联
Event.hasMany(models.Tasks, {
as: 'tasks',
foreignKey: 'event_id'
})
我使用以下代码更新Event
和Tasks
数组
db.Event.findOne({
where: {
id: eventToUpdate.id
},
include: [{
model: db.Tasks,
as: 'tasks',
}]
}).then((existingEvent) => {
// Loop through existingEvent attributes and existingEvent.dataValues.tasks and
// updated the attributes
}
然而,当我更新它时:
db.Event.update(existingEvent, { where: { id: existingEvent.id } })
.then((updatedEvent) => {
console.log(updatedEvent)
}).catch((error) => {
console.log("Error + error)
})
只有Event
在数据库中更新,而不是Tasks
。
我做错了什么?还是有更好的方法来实现这个目标?
答案 0 :(得分:0)
很难在评论中更新它。但这是我建议做的,
db.Event.findOne({
where: {
id: eventToUpdate.id
},
include: [{
model: db.Tasks,
as: 'tasks',
}]
}).then((existingEvent) => {
return Promise.all(existingEvent.tasks.map(task => task.updateAttributes(taskParams).then(console.log).catch(console.log));
}