share('nav', 1); } public function show(Goods $good) { $params = $good->params()->where('stock', '>', 0)->orderBy('price', 'asc')->get(); $first = $good->params()->orderBy('original', 'asc')->first(); $user = Auth::user(); return view('goods.show', compact('good', 'params', 'user', 'first')); } public function category(Request $request) { $category_id = $request->category_id ?? ''; if ($category_id) { $category = Category::find($category_id); } else { $category = ''; } $categorys = Category::where('parent_id', 0)->where('type', 'goods')->get(); return view('goods.category', compact('categorys', 'category', 'category_id')); } public function lists(Request $request) { $category_id = $request->get('category_id', ''); $title = $request->get('title', ''); $page = $request->get('page', ''); $price = $request->get('price', ''); $sold = $request->get('sold', ''); $goods = Goods::where('status', 1) ->when($category_id, function ($query) use ($category_id) { $ids = Category::where('id', $category_id)->orWhere('parent_id', $category_id)->pluck('id'); return $query->whereIn('category_id', $ids); }) ->when($title, function ($query) use ($title) { return $query->where('title', 'like', "%$title%"); }) ->when($price, function ($q) use ($price) {return $q->orderBy('price', $price);}) ->when($sold, function ($q) use ($sold) {return $q->orderBy('sold', $sold);}) ->orderBy('sort', 'asc') ->orderBy('created_at', 'desc') ->paginate(10); if ($page > 1) { if ($goods->count() > 0) { $html = response(view('goods.more', compact('goods')))->getContent(); return $this->success($html); } else { return $this->error('已经到最后一页'); } } $parent_id = 0; $category = ''; $app_title = '商品列表'; $parent_cate = ''; if ($category_id) { $parent_cate = $category = Category::find($category_id); if ($category->parent_id) { $app_title = $category->parent->title . '--' . $category->title; $parent_cate = $category->parent; $parent_id = $parent_cate->id; } else { $parent_id = $category->id; $app_title = $category->title; } } $categorys = Category::where('parent_id', $parent_id)->where('type', 'goods')->get(); view()->share('app_title', $app_title); return view('goods.lists', compact('goods', 'categorys', 'sold', 'price', 'category_id', 'title', 'parent_cate')); } //收藏 public function favorite(Goods $goods) { $user = Auth::user(); if (!$user) { return $this->error('请登录后在进行此操作', route('login')); } if ($user->hasFavorited($goods)) { $result = $user->unfavorite($goods); $text = '取消收藏'; } else { $result = $user->favorite($goods); $text = '收藏'; } if ($result) { return $this->success($text . '成功', route('goods.show', $goods)); } else { return $this->error($text . '失败'); } } }