我在下面拥有此功能,这要感谢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年的月份。
感谢您的时间,问候