Laravel 5. FirstorNew有几个条件

时间:2016-08-21 11:59:53

标签: php laravel eloquent

如果没有具有相同product_namebrandweightvolume的产品,我想向数据库添加产品。

这是我的代码:

$product = Product::firstorNew(['product_name'=>$request->product)], ['brand'=>$reques->brand), ['weight'=>$request->weight], ['volume'=>$request->volume]);

$product->product_name = $request->product;
$product->brand = $request->brand;
$product->weight = $request->weight;
$product->volume = $request->volume;
$product->save();

此代码不检查所有属性,只检查第一个属性,如果匹配,则更新行而不是添加新属性。例如,在数据库中有一个产品id=1product_name='Milk'brand='Parmalat'weight='null'volume=1,如果我添加product_name='Milk',{将更新{1}},brand='Unimilk'weight='null' id = 1的行,但在这种情况下,我想向数据库添加新行。

1 个答案:

答案 0 :(得分:8)

看起来您的括号放错了。试试这个:

$product = Product::firstOrNew([
  'product_name' => $request->product,
  'brand' => $request->brand,
  'weight' => $reqeust->weight,
  'volume' => $request->volume,
]);