我试图根据月份或日期表示一些数据。让我们在我的 Blade 中考虑以下代码。
@foreach($courses as $course)
<tr>
<td> {{ $course->course_title }} </td>
<td> {{ $course->revenue->sum('profit') }} BDT</td>
</tr>
@endforeach
此代码块为我提供了所有行的利润列总和。我的表中有一个时间戳字段。现在我想显示一月/二月的利润总和。简而言之,一月份的利润。我该怎么做?
最佳答案
尝试使用 GROUP BY
。
$query->groupBy(DB::raw('GROUP BY YEAR(your_date_field), MONTH(your_date_field)'));
但这样一来,您将无法在查询后执行sum
,因为每个月都会存在一行,所以我们需要添加sum
聚合到您的查询:
$query->select(DB::raw('sum(profit) as month_profit'));
现在,您的结果中每个月的行都会有一个列 month_profit
。
关于php - laravel Eloquent : filtering rows with month or date,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40011613/