public function show($id) { $product = \App\Models\Product::query()->with(['seller' => function ($q) { $q->select('id', 'username'); }, 'categories'])->find($id); if ($userAuth = \Auth::user()) { \App\Models\Product::setFavourites(collect([$product]), $userAuth); } return $product ?: $this->notFoundJson(); }
public function index(UserAuth $userAuth, $uid) { $seller = \App\Models\User::find($uid) ?: $this->notFoundJson(); $query = $seller->wares()->select(['id', 'title', 'subtitle', 'seller_id', 'price', 'stock_available', 'starts', 'ends', 'is_active', 'created_at', 'updated_at']); $count = $query->count(); $items = $query->forPage(request('page', 1), request('limit', $this->pageLimit))->get(); if ($userAuth) { $products = collect(); foreach ($items as $item) { $products[] = $item->product; } \App\Models\Product::setFavourites($products, $userAuth); } if ($userAuth) { \App\Models\Product::setFavourites($items, $userAuth); } return ["count" => $count, "limit" => request('limit', $this->pageLimit), "page" => request()->input('page', 1), "items" => $items]; }
public function index(UserAuth $userAuth, $uid) { $seller = \App\Models\User::find($uid) ?: $this->notFoundJson(); $query = $seller->sells()->with(['product' => function ($q) { $q->select('id', 'title'); }, 'seller' => function ($q) { $q->select('id', 'username'); }, 'buyer' => function ($q) { $q->select('id', 'username'); }]); $count = $query->count(); $items = $query->forPage(request('page', 1), request('limit', $this->pageLimit))->get(); if ($userAuth) { $products = collect(); foreach ($items as $item) { $products[] = $item->product; } \App\Models\Product::setFavourites($products, $userAuth); } return ["count" => $count, "limit" => request('limit', $this->pageLimit), "page" => request()->input('page', 1), "items" => $items]; }