2016-08-21 4 views
2

Я хочу, чтобы добавить товар в базу данных, если есть не продукт с той же product_name, brand, weight и volume.Laravel 5. FirstorNew с несколькими условиями

Вот мой код:

$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=1, product_name='Milk', brand='Parmalat', weight='null', volume=1 и если добавить product_name='Milk', brand='Unimilk', weight='null', volume=0.5 строка с идентификатором = 1 будет обновляться, но в данном случае я хочу, чтобы добавить новую строку к БД.

+0

Я думаю, что код имеет опечатку. пожалуйста, проверьте – Ahmad

ответ

4

Похоже, что ваши кронштейны установлены неправильно. Попробуйте следующее:

$product = Product::firstOrNew([ 
    'product_name' => $request->product, 
    'brand' => $request->brand, 
    'weight' => $reqeust->weight, 
    'volume' => $request->volume, 
]); 
Смежные вопросы