我希望通过created_at日期总结payment_amount,并将月份总数分配给两个不同的变量,以便我可以在图表js x和y轴上绘图。
到目前为止,我使用以下代码输出json字符串。
public function index()
{
$data = [
'period' => Payment::all('created_at', 'payment_amount')->groupBy(function($date) {
return Carbon::parse($date->created_at)->format('F');
})->tojson(),
];
//dd($data);
return view('admin.dashboard', $data);
}
所以我希望有一个json字符串 $ created_at //在x轴上 $ total payment_amount //在y轴上。
这是我需要设置变量的图表js部分...
var barChartData = {
labels: <?php echo $created_at; ?>, //by month.
datasets: [{
label: 'Revenue',
backgroundColor: "rgba(220,220,220,0.5)",
data: <?php echo $payment_amount; ?>, //summed up by month
}]
};
答案 0 :(得分:1)
您可以在查询中完成所有操作:
public function index()
{
$data = Payment::selectSub('MONTH(created_at)', 'month')
->selectSub('SUM(payment_amount)', 'total_payments')
->groupBy('month')
->get();
return view('admin.dashboard', compact('data'));
}
<强>更新强>
将控制器分开看起来像:
var barChartData = {
labels: {{ $data->pluck('month') }}, //by month.
datasets: [{
label: 'Revenue',
backgroundColor: "rgba(220,220,220,0.5)",
data: {{ $data->pluck('total_payments') }}, //summed up by month
}]
};
然后在我们看来:
start "" "directory\update.vbs"