همان طور که میدانید، در فروشگاه های اینترنتی معمولاً در سایدبار سمت راست، فیلتر های متنوعی برای نمایش نتایج محصولات در نظر گرفته می شود. کد زیر دقیقاً همین عملکرد را پیاده سازی می کند.
متد Show در Controller :
public function show(Request $request)
{
$query = Product::with('category');
if ($request->filled('category_id')) {
$query->where('category_id', $request->category_id);
}
$products = $query->get();
$categories = Category::all();
return view('products.show-product', compact('products', 'categories'));
}
کد فیلتر دسته بندی محصولات برای Blade :
@if ($categories->isNotEmpty())
<form method="GET" action="{{ route('products.show') }}" class="mr-auto">
<select name="category_id" onchange="this.form.submit()"
class="select cursor-pointer flex justify-start w-full">
<option value="">همه دسته بندی ها</option>
@foreach ($categories as $category)
<option value="{{ $category->id }}" @selected(request('category_id') == $category->id)>
{{ $category->name }}
</option>
@endforeach
</select>
</form>
@endif
#لاراول
@TheRaymondDev