2015-10-17 76 views
1

我想要做的是更新或插入表中的行。在我的情況下,更新看起來像這樣:update或創建laravel中的增量

\DB::table('inventories')->where('product_code',$product_code)->increment('stock_current_quantity',$quantity); 

我不想使用if語句。我真正想要的是將增量整合到以下語句中,以便更新爲上述語句。

\App\Inventory::updateOrCreate(['product_code' => $product_code], ['stock_current_quantity'=>$quantity]); 

在此先感謝!

+0

爲什麼你不使用雄辯?雄辯模型非常簡單。 –

回答

2

爲什麼不這樣做:

$inventory = \App\Inventory::firstOrNew(['product_code' => $product_code]); 

$inventory->stock_current_quantity = ($inventory->stock_current_quantity + $quantity); 
$inventory->save(); 

如果模型不存在,$inventory->stock_current_quantity只會等於$quantity,否則,它將被$quantity增加它。

+0

非常感謝! :)我只是堅持updateOrCreate方法! –

+0

不客氣! –

+0

數據庫'stock_current_quantity'可能會在檢索項目和保存項目之間發生變化。這就是爲什麼'increment'使用 – andrewtweber