【发布时间】:2020-10-30 22:02:21
【问题描述】:
有两个相关的表 - Product 和 SalesForecast。我想查询某个供应商的产品以及某个时期的销售预测。
建立关系。我的查询如下:
$products = Product::where('supplier_id', $supplier)
->whereHas('stock_forecasts_fk', function ($query) use ($begin, $end) {
$query->whereDate('date', '>', $begin);
$query->whereDate('date', '<', $end);
})
->get();
产品模型中的关系如下:
public function stock_forecasts_fk()
{
return $this->hasMany('App\Models\StockForecast');
}
此查询不能 100% 工作。我希望该供应商的所有产品都来(无论他们是否有预测)。如果他们有预测,我只需要那个时期的预测。否则,该产品将没有,预测。但是所有产品都需要来。有人可以建议如何修复此查询,结果如下:
供应商的所有产品都带有开始和结束日期之间的相关预测。如果没有预测,那么产品可以没有预测。
【问题讨论】:
-
我的理解是正确的,您总是想要属于该供应商的所有产品,但只加载相关的 StockForecasts?
-
没错。