如何在不创建副本的情况下增加 laravel 模型的数量

How to increment quantity of laravel model without creating a copy

我正在尝试在 laravel 中创建购物车系统,在该系统中选择菜单上的项目会将其添加为购物车项目。如果该商品已存在于购物车中,则应增加数量。我几乎完全可以工作,除了我已经制定的解决方案使得在需要增加数量的情况下,它还会重新创建购物车项目,这样就有一个有和没有增加的数量.我已经投入了大量精力来解决这个问题,并希望有人能够提供帮助。这是控制器中用于创建购物车项目的相关代码。

$cartItems = Cartitem::all();
if($cartItems->isEmpty()){
    $cartItem = new Cartitem([
        'name' => $request->name,
        'image_url' => $request->image_url,
        'description' => $request->description,
        'price' => $request->price,
        'quantity' => 1
    ]);
    $cartItem->save();
} else {
    forEach($cartItems as $item){
        if($request->name != $item->name){
            $cartItem = new Cartitem([
                'name' => $request->name,
                'image_url' => $request->image_url,
                'description' => $request->description,
                'price' => $request->price,
                'quantity' => 1
            ]);
            $cartItem->save();
        } else {
            ++$item->quantity;
            $item->save(); 
        }
    }
}  
$oldItem = Cartitem::where('name', $request->name)->first();

if ($oldItem) {
    $oldItem->increment('quantity');
}
else {
    $newItem = new Cartitem([
       'name' => $request->name,
       'image_url' => $request->image_url,
       'description' => $request->description,
       'price' => $request->price,
       'quantity' => 1
    ]);

    $newItem->save();
}