我正在建立一個小型電子商務網站,希望能夠在從某人的購物車添加或刪除商品時更新手頭的庫存。在我的購物車控制器中,我有四個功能:一個用于添加項目,一個用于增加項目,一個用于減少項目,一個用于刪除項目。這是代碼: 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();
不過,當您添加到購物車時,我不會這樣做。我會在結賬時這樣做,這樣你就不會把你的庫存留在廢棄的購物車里。或者,如果您確實需要在某人的購物車中有商品時提交您的庫存,請實現一個功能,以在提交的庫存被放棄時將其刪除。
- 1 回答
- 0 關注
- 130 瀏覽
添加回答
舉報
0/150
提交
取消