2016-05-27 21 views
0

如何根據不同列中的值更新數據庫列?Lavarel 5.2對數據庫進行條件更新

我喜歡它拉當前使用情況(例如:200):下面的查詢

$currentusage = CurrentPercentageModel::select('current_usage')->where('name', '=', 'User Name')->get(); 

我想它通過一定條件下的每次之後更新相同的值1。

save查詢應該是這樣的,並增加了一個新行到表的新值(例如:201):

$currentusage = $currentusage + 1; 
$savecurrentusage = new CurrentPercentageModel; 
$savecurrentusage->current_usage = $currentusage; 
$savecurrentusage->save(); 

如何更新從一個我從拉相同的值我查詢?

+0

嘗試增量https://laravel.com/docs/5.2/queries#updates? – Abhishek

回答

1

有點亂,但應該工作

$model = CurrentPercentageModel::where('name', '=', 'User Name')->first(); 
$model->current_usage += 1; 
$model->save(); 
+0

#太棒了。這工作。謝謝。 – imbayago

0

試試這個

$currentPercent = CurrentPercentageModel::where('name', '=', 'User Name')->first(); 
$currentusage = $currentPercent->currentusage + 1; 
$currentPercent->current_usage = $currentusage; 
$currentPercent->save(); 
1

如果你只想1添加到的領域之一,我想最簡單的方法將使用Query Builder's increment()方法:

DB::table('current_percentage')->increment('current_usage'); 

如果你想用雄辯的,你可以這樣做:

$current = CurrentPercentageModel::where('name', '=', 'User Name')->first(); 
$current->update(['current_usage' => ++$current->current_usage]); 
+1

您也可以直接在Eloquent模型上調用'increment()'。 – Josh

+0

@Josh,我剛剛檢查過,Eloquent也有'increment()'方法。不知道,謝謝。 ) –