【问题标题】:Perform addition operation in Laravel updateOrCreate在 Laravel updateOrCreate 中执行加法操作
【发布时间】:2021-10-26 13:54:48
【问题描述】:

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

我试过这样做

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

从现有购物车模型更新价格可以正常工作,但如果创建新购物车模型,数据库中的价格始终为空。你们有什么建议来解决这个问题吗?谢谢

【问题讨论】:

    标签: php laravel eloquent


    【解决方案1】:

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

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

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

    【讨论】:

    • 成功了,非常感谢:)
    猜你喜欢
    • 2020-08-06
    • 2017-07-30
    • 2019-08-05
    • 2018-01-23
    • 1970-01-01
    • 2022-11-07
    • 2019-12-22
    • 2019-06-21
    • 2018-10-08
    相关资源
    最近更新 更多