我有一个使用paranoid: true
续集的模型,这意味着在Model.destroy()
后,deletedAt
列将设置日期时间值。
但是,我希望在is_archived
被称为时将自定义列Model.destroy()
值设置为1,而不必在删除后再进行第二次Model.update()查询。
我尝试在instance.is_archived = 1
个钩子中设置before/afterDestroy
,但它们似乎无效。
任何建议:)?
答案 0 :(得分:2)
由于这里没有答案,因此我将其发布了。 Sequelize不支持在beforeDestroy
或afterDestroy
挂钩中更新属性。最好的方法是在挂钩内调用save()
或update()
:
afterDestroy(instance) {
instance.is_archived = 1;
await instance.save({ paranoid: false });
}
最好在afterDestroy
内进行删除,因为已经删除了。在beforeDestroy
中,实例将不会被删除。