Laravel сортировать результаты сгруппированы по неделям - PullRequest
0 голосов
/ 25 апреля 2018

Наличие заявки на бронирование отеля.

Я хочу получить This Weeks количество брони Last Weeks количество брони.

поэтому я добился этого с помощью приведенного ниже запроса, который дает дату по номеру недели. Я хочу отсортировать это.

Запрос:

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

Вывод выглядит так:

enter image description here

Здесь 16 и 17 - номера недель, как я могу отсортировать их, чтобы получить 17 и 16?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2018

Я думаю, ты попробуешь

$byweek = Reservation::all()
            ->groupBy(DB::raw('WEEK(created_at)'))
            ->orderBy(DB::raw('COUNT(id)','desc'));
0 голосов
/ 25 апреля 2018

Есть методы в коллекциях Laravel ->sortKeys() и ->sortKeysDesc().https://laravel.com/docs/5.6/collections#method-sortkeys PHP также имеет функцию ksort().

0 голосов
/ 25 апреля 2018
$byweek = Reservation::all()->groupBy(function($date) {
                                    return Carbon::parse($date->check_in)->format('W');
                                });

$byweek = $byweek->reverse();

Выполнено

Получить все записи и затем отменить сбор, чтобы получить обратный 17, 16, 15 и т. Д. Порядок.

...