Laravel排序结果按周分组

时间:2018-04-25 14:12:01

标签: laravel laravel-5.6 laravel-collection

有酒店预订申请。

我希望configure(allprojects - project(':NewLibraryName')) { println "applying java plugin to $project" apply plugin: 'java-library' //... } 预订计数为This Weeks预订计数。

所以我用下面的查询实现了这一点,它以星期数给出日期。我想对它进行排序。

查询:

Last Weeks

输出如下:

enter image description here

此处$byweek = Reservation::all()->groupBy(function($date) { return Carbon::parse($date->check_in)->format('W'); }); 16是周数,我如何对其进行排序以获得1717

4 个答案:

答案 0 :(得分:2)

$byweek = Reservation::all()->groupBy(function($date) {
                                    return Carbon::parse($date->check_in)->format('W');
                                });

$byweek = $byweek->reverse();

完成

获取所有记录,然后反转集合以获得反向17,16,15等订单。

答案 1 :(得分:1)

Laravel集合->sortKeys()->sortKeysDesc()中有方法。 https://laravel.com/docs/5.6/collections#method-sortkeys PHP也有ksort()功能。

答案 2 :(得分:0)

我想我试试

$byweek = Reservation::all()
            ->groupBy(DB::raw('WEEK(created_at)'))
            ->orderBy(DB::raw('COUNT(id)','desc'));

答案 3 :(得分:0)

尝试在查询中使用 orderBy,它的工作原理如下:

$byweek = Reservation::orderBy('check_in')->get()->groupBy(function($date) {
                                return Carbon::parse($date->check_in)->format('W');
                            });

不要忘记你必须使用 get() 而不是 all()。 我尝试了这种方法,因为我希望每周都可以订购里面的物品,而且效果很好。