为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Laravel 添加到购物车时删除手头的商品

使用 Laravel 添加到购物车时删除手头的商品

PHP
白猪掌柜的 2023-07-08 20:28:33
我正在建立一个小型电子商务网站,希望能够在从某人的购物车添加或删除商品时更新手头的库存。在我的购物车控制器中,我有四个功能:一个用于添加项目,一个用于增加项目,一个用于减少项目,一个用于删除项目。这是代码:     public function addItemToCart(Request $request, $id) {    $prevCart = $request->session()->get('cart');    $cart = new Cart($prevCart);    $product = Product::find($id);    $cart->addItem($id, $product);    $request->session()->put('cart', $cart);    return redirect()->route("home");}public function increaseSingleProduct(Request $request, $id) {    $prevCart = $request->session()->get('cart');    $cart = new Cart($prevCart);    $product = Product::find($id);    $cart->addItem($id, $product);    $request->session()->put('cart', $cart);    return redirect()->back();}public function decreaseSingleProduct(Request $request, $id) {    $prevCart = $request->session()->get('cart');    $cart = new Cart($prevCart);    if( $cart->items[$id]['quantity'] > 1) {        $product = Product::find($id);        $cart->items[$id]['quantity'] = $cart->items[$id]['quantity']-1;        $cart->items[$id]['totalSinglePrice'] = $cart->items[$id]['quantity'] * $product['price'];        $cart->updatePriceAndQunatity();        $request->session()->put('cart', $cart);    }    return redirect()->back();}public function deleteItemFromCart(Request $request, $id) {    $cart = Session::get('cart');    if(array_key_exists($id, $cart->items)){        unset($cart->items[$id]);    }    $prevCart = $request->session()->get("cart");    $updatedCart = new Cart($prevCart);    $updatedCart->updatePriceAndQunatity();    $request->session()->put("cart",$updatedCart);    return redirect()->route('shopping cart'); }这里的数量不是指现有数量,而是指购物车中的数量。在产品表中,我有一个名为 stock_quantity 的列。理想情况下,这是我希望在执行每个功能时更新的内容。
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

我可能不明白你问题的复杂性。难道你只需要找到乘积并递增或递减吗?


$product = Product::findOrFail($item_id);

$product->stock_quantity++; // or --

$product->save();

不过,当您添加到购物车时,我不会这样做。我会在结账时这样做,这样你就不会把你的库存留在废弃的购物车里。或者,如果您确实需要在某人的购物车中有商品时提交您的库存,请实现一个功能,以在提交的库存被放弃时将其删除。


查看完整回答
反对 回复 2023-07-08
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信