在保存UpdateAll之前,嘿嘿快问题
假设我有一个客户模型,有多个订单。在保存客户之前的操作挂钩监控我正在尝试自动创建订单。诀窍是我在做客户UpdateAll时尝试这样做
基于文档,我看到无法获取当前客户实例的ID
但有没有办法做ctx.instance.orders.create(data);
?
答案 0 :(得分:1)
我相信这样的情况,使用persist
钩子会更有意义。您可以通过ctx.currentInstance.id
访问该ID。此挂钩由将数据持久保存到数据源的操作触发,包括更新。
MyModel.observe('persist', function(ctx, next) {
if (ctx && ctx.currentInstance.id) {
// create order here
}
next();
});

答案 1 :(得分:0)
updateAll
是update
的别名函数。
你可以尝试类似的东西,
Customer.observe('before save', (ctx, next) => {
if (ctx.instance && ctx.instance.id ) {
// create order here
}
next();
});
ctx.instance.id
只有在你通过时才可以使用。
即
Customer.update({id: 1}, {name: 'New Name'})
- 在这种情况下ctx.instance.id
将可用。
Customer.update({name: 'New Name'})
- 在这种情况下,ctx.instance.id
无法使用。此外,这将更新所有客户的名称。