laravel eloquent:过滤包含月份或日期的行

时间:2016-10-13 03:03:35

标签: php mysql laravel

我试图根据月份或日期来表示一些数据。让我们考虑一下刀片中的以下代码。

@foreach($courses as $course)
   <tr>
     <td> {{ $course->course_title }} </td>
     <td> {{ $course->revenue->sum('profit') }} BDT</td>
   </tr>
@endforeach

这段代码为我提供了所有行的利润总和。我的表中有一个时间戳字段。现在我想显示1月/ 2月的利润总和。总之,1月份的利润总和。我该怎么做?

1 个答案:

答案 0 :(得分:0)

尝试使用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