可以说我的数据库中有3个订单
1-1-16
1-4-16
1-15-16
我想做的是显示一个图表,其中包含两个日期之间每天的订单。例如
1-1-16 / 1-5-16
我想要的是
1-1-16 ,1
1-2-16 ,0
1-3-16 ,0
1-4-16 ,1
1-5-16 ,0
没有订单时如何获取日期数据?我有一个带有created_at字段的Order模型,可以在其中运行查询。
目前,我得到按日期分组的订单,如下所示:
$variable = Order::select('created_at', DB::raw('sum(total) as totals'), DB::raw('sum(shipping) as totalshipping'))->groupBy(DB::raw('DAY(created_at)'))->OrderBy('created_at', 'desc')->get();
这每天给我订单,但不退还没有订单的日子。
我会这样做:
use Carbon\Carbon;
$oders = Order::select('id', 'created_at')
->get()
->groupBy(function($date) {
return Carbon::parse($date->created_at)->format('d'); // grouping by date
});
对于您没有订单的日期:
$start = new DateTime( '2016-01-01' );
$end = new DateTime( '2016-05-01' );
$interval = DateInterval::createFromDateString('1 day');
$range = new DatePeriod($start, $interval, $end);
foreach ( $range as $day )
// check if the $orders[i]->created_at != $day->format("Y-m-d")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句