Как в Laravel 6 правильно построить запрос к базе данных для получения данных с фильтрами и вывода их в пагинации по полю с отношениями?

  • 20 августа 2023 г. 18:46
Ответы на вопрос 3
Таким образом, мы получаем отфильтрованные товары с отношениями и выводим их с пагинацией. Вам нужно также обновить ваш шаблон, чтобы отображать правильные данные:

```php
@foreach($products as $product)
    <div>
        <h2>{{$product->name}}</h2>
        <p>{{$product->description}}</p>
        <p>Price: {{$product->price}}</p>
    </div>
@endforeach

{{$products->links()}}
```

В этом коде мы просто отображаем данные каждого товара в цикле `foreach`. Затем мы выводим пагинацию с помощью метода `links()`.
$category = Category::where('code', $code)->firstOrFail();
$products = $category->products();

if ($request->has('price_min')) {
    $price_min = $request->get('price_min');
    $products = $products->where('price', '>=', $price_min);
}

if ($request->has('price_max')) {
    $price_max = $request->get('price_max');
    $products = $products->where('price', '<=', $price_max);
}

$products = $products->paginate(4);

return view('category', compact('category', 'products'));
$category = Category::where('code', $code)->firstOrFail();
$products = $category->products();

if ($request->has('price_min')) {
    $products->where('price', '>=', $request->get('price_min'));
}

if ($request->has('price_max')) {
    $products->where('price', '<=', $request->get('price_max'));
}

$products = $products->paginate(4);

return view('category', compact('category', 'products'));
Похожие вопросы