middleware('auth'); View::share('nav', 1); } public function index(Request $request) { $lists = Cart::mine()->orderBy('id', 'desc')->get(); $carts = []; foreach ($lists as $cart) { if ($cart->params->stock < 1) { $cart->delete(); } else { if ($cart->number > $cart->params->stock) { $cart->number = $cart->params->stock; $cart->save(); } $carts[] = $cart; } } $recommends = Goods::where('status', 1)->where('is_recommend', 1)->take(6)->orderBy('created_at', 'desc')->get(); return view('cart.index', compact('carts', 'recommends')); } public function setnum(Request $request) { $cart = Cart::find($request->id); $cart->number = $request->number; $cart->save(); } public function sure(Request $request) { $data = array(); foreach (explode(',', $request->cart_id) as $key => $value) { $cart = Cart::find($value); if ($cart) { $data['details'][0][$value]['cart_id'] = $value; $data['details'][0][$value]['params_id'] = $cart->params_id; $data['details'][0][$value]['number'] = $cart->number; } } $data['item']['id'] = 0; $data['item']['type'] = 'MEMBER'; return redirect()->route('orders.create', $data); } public function delete(Request $request) { $id = $request->id; $cart = Cart::find($id); if ($cart->delete()) { return $this->success('删除成功'); } else { return $this->error('删除失败'); } } //加入购物车 public function store(Request $request) { if (Cart::where('user_id', Auth::id())->count() == 99) { return ['code' => 0, 'msg' => '您的购物车商品数量已达上限99个']; } foreach ($request->details as $key => $details) { foreach ($details as $detail) { $user_id = Auth::id(); $result = Cart::where(['user_id' => $user_id, 'params_id' => $detail['params_id']])->first(); $params = GoodsParams::find($detail['params_id']); if ($result) { $result->number += $detail['number']; $result->save(); } else { $result = Cart::create([ 'user_id' => Auth::id(), 'params_id' => $detail['params_id'], 'goods_id' => $params->goods_id, //保存goods_id是为了下架商品时,删除购物车 'number' => $detail['number'], ]); } } } if ($result) { return $this->success('成功加入购物车'); } else { return $this->error('加入购物车失败'); } } }