Laravel-按月份(和总和)分组并按年份分组返回数据

时间:2018-12-28 14:31:53

标签: laravel laravel-5

我在下面拥有此功能,这要感谢this问题中的所有人

$records = TabelaAngariacao::select('preco', 'created_at')
            ->where('estado', '=', 'Vendido')
            ->get()
            ->groupBy(function($date) {
                return Carbon::parse($date->created_at)->format('m');
            })->transform(function ($value) { //it can also be map()

                $nStr = $value->map(function ($vl) {
                    return str_replace(".", "", $vl->preco);
                });
                return [
                    'preco_sum' => $nStr->sum()
                ];
            });

...此功能很好,我遇到了一个问题,因为我保存的preco(价格)具有varchar(这是错误的),但是通过使用map我就能进行求和,并且一切工作都很好我的结果如下:

10: {preco_sum: 160000}
11: {preco_sum: 220000}
12: {preco_sum: 1175000}

我有月份和月份的总和...但是...然后我意识到我需要拥有同样的东西,但又与年份有关,所以我尝试了这一点:

return Carbon::parse($date->created_at)->format('Y-m');

这导致我得到这个结果:

"2018-10" => array:1 [▶]
"2018-11" => array:1 [▶]
"2018-12" => array:1 [▶]
"2019-01" => array:1 [▶]

但是如何在客户端按年份过滤?我使用的是chartjs,因此一行应该是2018年的所有月份之和,例如2017年的月份。

感谢您的时间,问候

0 个答案:

没有答案