feat: show only brands with min 1 product - #91

This commit is contained in:
Noah Lancien 2026-02-25 09:23:16 +01:00
parent b23bbf8334
commit 6e7bbe0681
2 changed files with 8 additions and 2 deletions

View file

@ -88,12 +88,18 @@ class ProductsController extends Controller
/** @var \Illuminate\Database\Eloquent\Collection<\App\Models\Product> */
$products = $productsQuery->orderBy('order', 'ASC')->paginate(6);
$brands = \collect(\App\Enums\ProductBrand::toArray())->filter(
function (\App\Enums\ProductBrand $case) {
return Product::query()->pluck('brand')->contains($case->value);
}
)->values();
if ($request->ajax()) {
return \response()->json([ProductResource::collection($products), $products->total()]);
} else {
$ranges = Range::all();
$tags = Tag::where('status', true)->get();
return view('ranges', compact('products', 'ranges', 'tags', 'sessionFilter', 'filtersMenuIsOpen'));
return view('ranges', compact('products', 'ranges', 'tags', 'sessionFilter', 'filtersMenuIsOpen', 'brands'));
}
}

View file

@ -11,7 +11,7 @@
$dataComponent = [
'hasPromotion' => request()->promotion ? true : false,
'ranges' => $ranges,
'brands' => \App\Enums\ProductBrand::toArray(),
'brands' => $brands,
'tags' => $tags,
'products' => \App\Http\Resources\ProductResource::collection($products),
'productsResults' => $products->perPage(),