假设我的数据库中有 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字段的订单模型,我可以在其中运行查询。
目前,我得到的订单按日期分组,如下所示:
$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")
关于laravel - 获取每天两个日期之间的所有订单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36153100/