Laravel 5.2 有条件地更新数据库

Laravel 5.2 Conditional Update to Database

如何根据不同列的值更新数据库列?

我有一个类似下面的查询,它提取当前使用量(示例:200):

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

我想在每次通过特定条件后更新相同的值+1。

我的 save 查询将如下所示,并使用新值(示例:201)向 table 添加新行:

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

如何更新从查询中提取的相同值?

试试这个

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

有点乱,但应该可以用

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

如果您只想将其中一个字段加 1,我想最简单的方法是使用 Query Builder's increment() 方法:

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

如果你想使用Eloquent,你可以这样做:

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