为了简化,我有两个模型,Product
和ProductStatus
。为了记录产品状态的历史,它们与一对多关系绑定,Product
是父节点。
现在的问题是:如何根据ProductStatus
绑定的最新状态查询Product
型号?
假设我想查询一个状态为“Approved”的产品,那么大致的想法可能是这样的:
// The status model has a field called status
Product::whereHas("statuses", fn($q) => $q->whereLatest("status", "Approved"))
注意:我需要在构建器示例中使用此代码,因为我假设我要查询大量数据。
我该怎么做?
2条答案
按热度按时间bjp0bcyl1#
我建议在
Product
模型上为当前状态创建一个属性,并创建一个模型观察器来监视此属性的更改,并在必要时创建一个ProductStatus
。由于您将查询大量数据,因此这将更高效,更快。xt0899hw2#
在产品模型中创建作用域
用途: