php - laravel Eloquent : filtering rows with month or date

标签 php mysql laravel

我试图根据月份或日期表示一些数据。让我们在我的 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/

相关文章:

javascript - Vue 内容在父组件之外渲染

mysql - phpmyadmin 设计模式不存在

mysql - 事务并发性以防止读取旧版本的记录

php - 使用 Laravel 的 Eloquent 将数据发送到数据库的问题

php - 使用 PHP ob_start() 缓冲输出时,最小高度 CSS 属性不起作用

php - 通过 PHP 进行 SVN 结帐

PHP 代理对象

mysql - 如何从 AngularJs 和 MySQL 中的 API 创建分层 JSON

laravel - Eloquent Restore() 函数对软删除无法恢复

laravel 5.5 不支持 jwt 授权库