首页 > 解决方案 > firstOrnew 不更新现有记录,但插入新记录

问题描述

大家好,我有以下代码来更新我的表

$product = Product::firstOrNew(array(
    'id' => $data['product'][$i]['id'],
    'title'=>$data['product'][$i]['Title'],
    'isActive'=>$data['product'][$i]['IsActive'],
    'status'=>$data['product'][$i]['productstatus'],
    'user_id'=>$userId,
    'item_id'=>$itemId,
    'store_id'=>$store_id,
    'images'=>$images,
    'price'=>$price,
    
    'price_2'=>$price2,
    
    'stock'=>$stock,
    'description'=>$description,
    'country_id'=>$country,
    'manufacture'=>$manufacturer,
    'width'=>$width,
    'height'=>$height,
    'depth'=>$depth,
    'is_delivery'=>$isDelivery,
    'delivery_type'=>$deliveryType,
    'seo_title'=>$seoTitle,
    'meta_description'=>$metaDescription,
    'meta_tags'=>$metaTags,
    'articul'=>$sku
    
    
));
    
$product->save();

它确实插入了一个新行,但不会更新现有的一次。我做错了什么?

标签: phpmysqllaravel

解决方案


您还可以使用更新或创建

$user = User::updateOrCreate(
                ['id' => $request->id],
                ['name' => 'xyz']
            ]);

推荐阅读