我有两个型号。购买和购买详细信息与他们相关联 Purchase.hasMany(models.PurchaseDetail) PurchaseDetail.belongsTo(models.Purchase)
我在PurchaseDetail上有一个afterFind挂钩,用于检查其他模型,并向实例添加有关PurchaseDetail中使用的产品状态的数据,当我直接调用PurchaseDetail.find时它可以正常工作
但是,当我执行Purchase.find并包含PurchaseDetail时,不会触发此挂钩。
我知道我可以单独调用两个模型并自己组合并发送数据,但如果我团队中的另一个开发人员决定包含InvoiceDetail,他们将不会收到此信息。
如果包含PurchaseDetail,我该如何触发此功能?
答案 0 :(得分:1)
我们在我所工作的公司所做的是将child中的afterFind
钩子的行为提取到我们称为expand
的原型函数中,然后调用此expand
函数afterFind
挂钩。
然后,我们在父实体内部创建了一个afterFind
钩子,并在其中创建了一个名为child.expand()
的链接。
答案 1 :(得分:0)
在其他模型 (hooks
) 中不会调用 findAll({ model, include: [{ model, include }]
https://github.com/sequelize/sequelize/issues/4627