Laravel排序结果按周分组
有酒店预订申请 我想获得Laravel排序结果按周分组,laravel,laravel-5.6,laravel-collection,Laravel,Laravel 5.6,Laravel Collection,有酒店预订申请 我想获得本周预订计数和上周预订计数 所以我通过下面的查询实现了这一点,它通过周数给出日期。我想把它分类 查询: $byweek = Reservation::all()->groupBy(function($date) { return Carbon::parse($date->check_in)->format('W'); }
本周
预订计数和上周
预订计数
所以我通过下面的查询实现了这一点,它通过周数给出日期。我想把它分类
查询:
$byweek = Reservation::all()->groupBy(function($date) {
return Carbon::parse($date->check_in)->format('W');
});
输出如下:
$byweek = Reservation::orderBy('check_in')->get()->groupBy(function($date) {
return Carbon::parse($date->check_in)->format('W');
});
这里的16
和17
是周数,我如何对其排序以获得17
和16
$byweek = Reservation::all()->groupBy(function($date) {
return Carbon::parse($date->check_in)->format('W');
});
$byweek = $byweek->reverse();
完成
获取所有记录,然后反向收集以获取反向17、16、15等。。订购。我想你可以试试
$byweek = Reservation::all()
->groupBy(DB::raw('WEEK(created_at)'))
->orderBy(DB::raw('COUNT(id)','desc'));
Laravel集合中有方法
->sortKeys()
和->sortKeysDesc()
。
PHP也有
ksort()
函数。尝试在查询中使用orderBy,它的工作原理如下:
$byweek = Reservation::orderBy('check_in')->get()->groupBy(function($date) {
return Carbon::parse($date->check_in)->format('W');
});
不要忘记必须使用get()而不是all()。
我尝试了这种方法,因为我希望每周内的物品都能被订购,而且效果很好。或者,如果你想办法让两周计数,那就更好了