{{-- Reusable product selector with category grouping. Required variables: $products — Collection of Product (with 'category' eager loaded) $selectedIds — Array of selected product IDs --}}
Apply To:
@php $grouped = $products->groupBy(fn($p) => $p->category_id ?? 'none'); @endphp @forelse($grouped as $catId => $catProducts) @php $catName = $catProducts->first()->category->name ?? 'Uncategorized'; @endphp
{{-- Category row --}}
{{-- Products under this category --}}
@foreach($catProducts as $product)
id, $selectedIds) ? 'checked' : '' }} onchange="syncCategoryCheckbox('{{ $catId }}')">
@endforeach
@empty

No active products available.

@endforelse