where('type', StaticPageType::ranges)->firstOrFail(); /** @var \App\Models\Range $rangeModels */ $rangeModels = Range::query()->where('published', true)->orderBy('order')->paginate(12); return view('fo.pages.ranges.index', compact('rangeModels', 'staticPageModel')); } /** * Show a specific resource. * * @param string $slug * @return \Illuminate\Contracts\View\View */ public function show(string $slug): \Illuminate\Contracts\View\View { /** @var \App\Models\Range $rangeModel */ $rangeModel = Range::query()->where('published', true)->where('slug', $slug)->firstOrFail(); /** @var \App\Models\Product $productModels */ $productModels = Product::query() ->where('range_id', $rangeModel->id) ->where('published', true) ->orderBy('order') ->paginate(12); return view('fo.pages.ranges.show', compact('rangeModel', 'productModels')); } /** * Get filtered ranges. * * @return \Illuminate\Http\JsonResponse */ public function rangesFiltered(): \Illuminate\Http\JsonResponse { $productModels = Range::query() ->where('published', true) ->orderBy('order', 'asc') ->get(); $productModels = CollectionHelper::paginateManually($productModels, 12, request()->page); return response()->json($productModels); } }