рейтинг и индекс за максимальную оценку у него = 10 за минимальную 0, есть кол-во отзывов, за максимальное кол-во 10 за минимальное 0, есть кол-во просмотров, аналогично, максимальное 5 минимальное 0, и вот сплюсовать все и отсортировать по этому
Например:
Товар 1: Рейтинг 5 из 10, оценок 100, просмотров 10000 = 5 + 10 + 5 = 20
Товар 2: Рейтинг 10 из 10, оценок 50, просмотров 5000 = 10 + 5 + 2.5 = 17.5
Сортируем по 17.5 и 20
$orders = DB::table('products') ->join('comments', 'products.id', '=', 'comment.product_id') ->orderByRaw('SUM(comments) * products.views DESC') ->get(); Что-то в таком духе
Обсуждают сегодня