Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Возможно всё элементарно, но мне нужна помощь.
В чём вопрос. Есть, например, автор книг, категории и сами книги.
Естественно, книги относятся к категориям и к авторам.
Необходимо вытащить все книги всех авторов из определённой категории с группировкой по авторам, а в дальнейшем по дням.
Например:
Автор: John Doe
02.01.2018
-Книга №1
-Книга №2
-Книга №3
-Книга №4
01.01.2018
-Книга №1
-Книга №2
-Книга №3
-Книга №4
Автор: Jane Doe
02.01.2018
-Книга №1
-Книга №2
-Книга №3
-Книга №4
01.01.2018
-Книга №1
-Книга №2
-Книга №3
-Книга №4
Заранее благодарен за помощь.
Изменено Echo (07.06.2018 00:56:47)
Не в сети
Начиная с версии 5.5 у ларавела можно осуществлять множественную группировку
https://laravel.com/docs/5.5/collections#method-groupby
Изменено AlexForever (07.06.2018 01:44:12)
Не в сети
Начиная с версии 5.5 у ларавела можно осуществлять множественную группировку
Этим я пользуюсь сейчас, но это метод коллекции. А мне бы использовать подобную возможность при запросе, чтобы, например, сделать пагинацию.
Не в сети
Прошу прощения, уже нашёл решение.
Спасибо за помощь.
Изменено Echo (07.06.2018 05:03:39)
Не в сети
Во-первых, надо смириться с тем, что буквально такой результат недостижим с помощью Query Builder. Потому что SQL-ный group by выдаёт толко группируемые поля и агрегаты, а здесь присутствуют группы, включающие в себя списки другого вида.
Но если мы будем применять groupBy уже после получения данных из базы, группировать коллекции, то есть
…->get()->groupBy(…)
а не наоброт, то такой вид возможен.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Многомерные groupBy работают для коллекций начиная с v5.5
Тем кто использует более старые версии, может пригодиться изучение соответствующего, PR который вошел в v5.5.
https://github.com/laravel/framework/pull/22630
всего один коммит, помоему блестящее дополнение.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети
Страницы 1