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

я использую db raw, он работает

Мой запрос использует DB сырье, как это:

$products = DB::select(DB::raw('SELECT * 
                FROM (
                    SELECT a.*, b.name AS store_name, b.address
                    FROM products a
                    JOIN stores b ON b.id = a.store_id
                    WHERE a.category_id = '.$category_id.'
                    ORDER BY a.total_sold DESC, a.updated_at DESC
                    LIMIT '.$num.'
                ) AS product
                GROUP BY store_id'));

Оно работает. Но я хочу изменить это с помощью laravel eloquent

Я пытаюсь так:

$products = Product::where('category_id', '=', $category_id)
     ->with('store')
     ->groupBy('store_id')
     ->orderBy('total_sold','desc')
     ->orderBy('updated_at', 'desc')
     ->take($num)
     ->get();

Это тоже работает. Но заказ по обновлению не выполнен

Как я могу решить это?

Ответы на вопрос(1)

Ваш ответ на вопрос