user()->products, 9, $request->page ?? 1); return view('club.pages.favorites.products', compact('models')); } /** * Display a listing of the resource. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Contracts\View\View */ public function indexRecipes(Request $request): \Illuminate\Contracts\View\View { $models = CollectionHelper::paginateManually(auth('club')->user()->recipes, 9, $request->page ?? 1); return view('club.pages.favorites.recipes', compact('models')); } /** * Update favorites models for a specific club customer. * * @param \App\Http\Requests\Club\Favorite\UpdateFavoriteRequest $request * @return \Illuminate\Http\JsonResponse */ public function update(UpdateFavoriteRequest $request): \Illuminate\Http\JsonResponse { $customer = Customer::query()->where('id', $request->validated()['customer'])->first(); $currentFavorites = $customer->{$request->validated()['class']}->pluck('id'); /** @var integer $newFavorites */ $newFavorites = $request->validated()['model']; ($currentFavorites->contains($newFavorites)) ? $customer->{$request->validated()['class']}()->detach($newFavorites) : $customer->{$request->validated()['class']}()->attach($newFavorites); return response()->json([ 'status' => 'OK', 'data' => $customer->{$request->validated()['class']}()->get()->pluck('id'), ]); } }