我有一个用 paranoid: true
用 Sequelize 编写的模型,这意味着在 Model.destroy()
上,deletedAt
列将设置了日期时间值。
但是,当调用 Model.destroy()
时,我希望将自定义列 is_archived
值设置为 1 而无需进行第二次 Model.update ()删除后查询。
我尝试在 before/afterDestroy
Hook 内设置 instance.is_archived = 1
,但它们似乎不起作用。
有什么建议吗:)?
最佳答案
由于这里没有答案,所以我发布了这个。 Sequelize 不支持更新 beforeDestroy
或 afterDestroy
Hook 内的属性。最好的方法是在钩子(Hook)内调用 save()
或 update()
:
afterDestroy(instance) {
instance.is_archived = 1;
await instance.save({ paranoid: false, hooks: false });
}
最好在 afterDestroy
内执行此操作,因为删除已经发生。在 beforeDestroy
中,实例有可能不会被删除。
关于node.js - Sequelize : Update a column value on Model. 销毁(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40826130/