【发布时间】:2021-12-29 22:05:02
【问题描述】:
我想在将订单添加到购物车时减少产品表中的数量,现在当我将某些东西添加到购物车时,正确的数量并没有减少。例如,如果我订购了 6 件商品,那么我的产品表中会随机减少一个数量。
这是我在 livewire 订单控制器中的代码:
public function IncrementQty($cartId)
{
$carts=Cart::find($cartId);
$carts->increment('product_qty',1);
$updatePrice=$carts->product_qty * $carts->product->price;
$carts->update(['product_price'=>$updatePrice]);
$getProductStock=Product::where(['id'=>$carts['product_id']])->first()->toArray();
$newStock=$getProductStock['quantity'] - $carts['product_qty'];
Product::where(['id'=>$carts['product_id']])->update(['quantity'=>$newStock]);
$this->mount();
}
作为初学者,我无法理解这里出了什么问题。我应该从 orderDetails 表而不是 carts 表中减去它吗?如果是那怎么办?
【问题讨论】:
-
一个购物车只能有 1 个产品? ...顺便说一句,您可以使用查询生成器的
increment和decrement方法,而不是自己做数学来减少数量 -
在实际下订单之前,我不会从“库存”中减去
-
不,那个1是点击时购物车中的产品数量增加一个。我现在面临的唯一问题是下订单时产品库存随机减少。
-
您的意思是“下订单时产品库存随机减少”?你的表结构是什么样的?
-
@Qirel 表示例如当我在购物车中添加数量 3 时,然后从产品表中减少 5、6 或任何随机数量。我的 products 表包含 product_name、数量、成本、价格和 alert_stock 列。
标签: laravel eloquent laravel-8 laravel-livewire