$this->valueCategoriesService->fetchCategoriesByPriority(), 'categoriesNav' => $this->valueCategoriesService->fetchAllCategories(), ]); } public function category(int $id): \Illuminate\View\View|\Illuminate\Http\RedirectResponse { $category = $this->valueCategoriesService->fetchCategoryById($id); if (! $category) { return redirect()->back()->withErrors([ 'message' => __('The entered category does not exist'), ]); } return view('rare-values', [ 'categories' => $category, 'categoriesNav' => $this->valueCategoriesService->fetchAllCategories(), ]); } public function search(RareSearchFormRequest $request): \Illuminate\View\View|\Illuminate\Http\RedirectResponse { $searchTerm = $request->input('search'); $categories = $this->valueCategoriesService->searchCategories($searchTerm); if ($categories->isEmpty()) { return redirect()->back()->withErrors([ 'message' => __('It seems like there were no rares matching your search input'), ]); } return view('rare-values', [ 'categories' => $categories, 'categoriesNav' => WebsiteRareValueCategory::has('furniture')->get(), ]); } public function value(WebsiteRareValue $value): View { $items = Item::with(['user:id,username,look']) ->where('item_id', $value->item_id) ->get(); $itemsPerUser = $items->groupBy('user_id')->map(fn ($group) => [ 'user' => $group->first()->user, 'item_count' => $group->count(), ]); if ((bool) setting('enable_caching')) { Cache::remember('allItems_' . $value->id, setting('cache_timer'), fn () => $items); } return view('value', [ 'value' => $value, 'items' => $itemsPerUser, ]); } }