$byweek = Reservation::all()->groupBy(function($date) {
return Carbon::parse($date->check_in)->format('W');
});
$byweek = $byweek->reverse();
完成
获取所有记录,然后反转集合以获得反向17、16、15等顺序。
I think y try
$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()。我尝试了这种方法,因为我希望每个星期内的对象被排序,并且它完美地运行。