просмотров которые берутся по связи из другой таблицы, так же темы привязаны к книгам.
Задача следующая:
1. Сортировать темы по популярности - это я сделал: withCount('views')->orderBy('views_count')
2. Сортировка должна идти в разрез книг... т.е
список тем:
-книга 1
— тема 1
— тема 2
- книга 2
— тема 3
— тема 2
— тема 1
вот как реализовать следующее?
нужно группировать темы по книге и уже в этой группе сортировать по количеству просмотров. Как это реализовать в коде?
на псевдокоде примерно так, через под-дапрос Books :: with 'themes' => (withCount 'views' + orderBy 'views_count')
всё было бы хорошо, если было так просто))) мне нужно из тем это всё получать BookTopic::withCount('views')->orderBy('views_count')...
когда пытаюсь сгруппировать по iD книги groupBy('book_id') получаю ошибку - https://prnt.sc/U6KOMbea6M_R
у тебя тут на верхнем уровне книги, вот и их бери с темами, а не наоборот. -книга 1 — тема 1 — тема 2 - книга 2 — тема 3 — тема 2 — тема 1
пытаюсь хоть какое-то решение найти, мне нужно получить следующий результат тема 1 (10 просмотров) - книга 1 тема 2 (7 просмотров) - книга 1 тема 3 (3 просмотров) - книга 1 тема 4 (1 просмотров) - книга 1 тема 1 (11 просмотров) - книга 2 тема 2 (9 просмотров) - книга 2 тема 3 (4 просмотров) - книга 2 тема 1 (54 просмотров) - книга 3 тема 2 (3 просмотров) - книга 3 тема 3 (1 просмотров) - книга 3 тема 4 (0 просмотров) - книга 3
Ок, как это по отношениям?
$topic->book - книга $topic->views() - просмотры
Так, ок, а зачем группировать по book_id что-то?
пытаюсь хоть что-то сделать...
Ну попробуй на одной ноге попрыгать - хоть что-то, да сделаешь
По факту ты можешь вывести: {{ тема->название }} ({{ тема->количество_просмотров }} просмотров) - {{ тема->книга->название }}
Обсуждают сегодня