在Laravel updateOrCreate中执行加法操作



我正在做一个电子商务项目,我在购物车系统中有一个问题。因此,用户可以通过价格将产品添加到购物车中,如果用户再次添加相同的产品,则(购物车中的)价格应该累计。例如,我以20美元的价格添加一个苹果到购物车,然后我以10美元的价格再次添加它,现在的价格应该是30美元。

i tried to do this

$cart = Cart::updateOrCreate(
['order_id' => $order->id, 'product_id' => $request->product_id],
['price' => DB::raw("price + $request->price")]
);

可以很好地从现有的购物车模型更新价格,但是如果创建了新的购物车模型,那么价格在数据库中总是空的。你们有什么建议来解决这个问题吗?由于

您可以在原始查询中使用IFNULL()

$cart = Cart::updateOrCreate(
['order_id' => $order->id, 'product_id' => $request->product_id],
['price' => DB::raw("IFNULL(price, 0) + $request->price")]
);

IFNULL(field, 0)将返回0,如果字段为NULL,则返回值。

相关内容

  • 没有找到相关文章

最新更新