Laravel 5.2数据库的条件更新

问题描述 投票:0回答:3

如何根据其他列中的值更新数据库列?

我有一个类似下面的查询,它提取当前用法(例如: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();

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

php mysql database laravel conditional
3个回答
1
投票

有点乱,但应该有效

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

1
投票

如果你只想在其中一个字段中添加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]);

0
投票

试试这个

$currentPercent = CurrentPercentageModel::where('name', '=', 'User Name')->first();
 $currentusage = $currentPercent->currentusage + 1;
 $currentPercent->current_usage = $currentusage;
 $currentPercent->save();
© www.soinside.com 2019 - 2024. All rights reserved.