我有两个模型。 Purchase和PurchaseDetail以及它们与
Purchase.hasMany(models.PurchaseDetail)
PurchaseDetail.belongsTo(model.Purchase)
我在PurchaseDetail上具有afterFind钩子,该钩子可检查其他模型并将数据添加到与PurchaseDetail中使用的产品状态有关的实例中,并且当我直接调用PurchaseDetail.find时,它工作正常
但是,当我执行Purchase.find并包含PurchaseDetail时,不会触发此挂钩。
我知道我可以分别调用这两个模型,然后自己组合并发送数据,但是如果团队中的另一个开发人员决定包括InvoiceDetail,他们将不会收到此信息。
每当包含PurchaseDetail时,如何触发此功能?
最佳答案
在我工作的公司中,我们在这里所做的工作是将子代中的afterFind
钩子的行为提取到我们称为expand
的原型函数中,然后在expand
钩子中调用此afterFind
函数。
然后,我们在父实体内部创建了一个afterFind
钩子,该钩子称为child.expand()
。