laravel - 如何从刀片中的循环中获取记录的当前月份
问题描述
我正在尝试从两个表 USER 和 SALES 表中获取记录...但我只需要每个用户在当月完成的销售额。
我正在使用此函数从两个表中获取所有记录
$everyone = User::with('sales')->get();
然后在我看来我正在这样做
@foreach($everyone as $item)
$item->sales->sum('sales')
@endforeach
但我只想在视图中获得当月的销售额..如何在视图中添加月份
我努力了
$item->sales->whereMonth('created_at', Carbon::now()->month)->sum('sales')
但不工作
解决方案
您可以使用whereHas()
方法,whereHas()
工作原理基本相同,has()
但允许您为相关模型指定额外的过滤器以检查:
$everyone = User::whereHas('sales', function ($query) {
$query->whereMonth('created_at', Carbon::now()->format('M'));
})->get();
此方法不再支持Laravel 5.4。此方法适用于 Laravel 5.5 及更高版本
以下代码未经我测试。希望这有效:
$everyone = User::with(['sales' => function ($query) {
$query->whereMonth('created_at', Carbon::now()->format('M'));
}])
->get();