Основная проблема, кажется, связана с разбиением на страницы, потому что тот же код с -> get возвращает некоторые элементы, но с -> paginate ничего не возвращает.
$products = DB::table('categories_products')
->leftJoin('categories', 'categories_products.categories_id', '=', 'categories.id')
->leftJoin('products', 'categories_products.products_id', '=', 'products.id')
->select('categories_products.categories_id as c_id',
'categories.name as c_name',
'categories.img as c_img',
'categories_products.products_id as p_id',
'products.name as p_name',
'products.img as p_img');
if(request()->has('category')){
$products = $products->where('c_id', request('category'));
}
$products = $products->orderBy('p_name')->groupBy('p_id')->paginate(9)
->appends(['category' => request('category')]);
dd($products);
- Ожидаемый результат:
- Результат кода:
- элементы: 0,
- страницы: 1;
Изменение paginate-> добавление к -> get :
$products = $products->orderBy('p_name')->groupBy('p_id')->paginate(9)
->appends(['category' => request('category')]);
dd($products);
к
$products = $products->orderBy('p_name')->groupBy('p_id')->get();
dd($products);