如何更新购物车选项在Larave购物车由Crinsane



我正在使用 Crinsane 的 laravel carthttps://github.com/Crinsane/LaravelShoppingcart

我想更新选项购物车,里面有很多选项,但我只想更改一个选项,我做不到

这是我的代码

Cart::add([
'id' => 1, 
'name' => 'Keyboard', 
'qty' => 30, 
'price' => 399, 
'options' => [
'item_code' => 'KEY01', 
'dimension' => '30cm x 60cm', ...etc]
]);

然后我想更改选项

这是我的代码

Cart::update(
$rowId, [
'qty' => 60, 
'price' => 299, 
'options' => [
'item_code' => 'KEY02']
]);

然后结果选项只item_code,其他选项消失我希望其他选项仍然存在,如何处理?

对不起,英语不好

感谢您的回答

请尝试以下代码。

$item = Cart::get($rowId);
$option = $item->option->merge(['item_code' => 'KEY02']);
Cart::update(
    $rowId, [
    'qty' => 60, 
    'price' => 299, 
    'options' => $option
]);

这是更好的方法。 和良好的解决方案:

 public function updateCart(Request $request){
    $rid = $request->row_id;
    $qty = $request->qty;
    for($i = 0; $i< count($rid); $i++){
        $cart = Cart::get($rid[$i]);
        if ($cart->qty != $qty[$i]) {
            Cart::update(
                $rid[$i], [
                'qty' => $qty[$i],
                'options' => [
                    'image'            => $cart->options->image,
                    'description'      => $cart->options->description,
                    'unit_type'        => $cart->options->unit_type,
                    'color'            => $cart->options->color,
                    'print'            => $cart->options->print,
                    'design'           => $cart->options->design,
                    'discount_info'    => $cart->options->discount_info,
                    'discount_amount'  => $discountAmount * $qty[$i],
                ]
            ]);
        }
    }
    return redirect()->back()->with('success', 'Cart update successfully');
}

相关内容

最新更新