如何根据其他列中的值更新数据库列?
我有一个类似下面的查询,它提取当前用法(例如: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();
如何从我从查询中提取的值更新相同的值?
有点乱,但应该有效
$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]);
试试这个
$currentPercent = CurrentPercentageModel::where('name', '=', 'User Name')->first();
$currentusage = $currentPercent->currentusage + 1;
$currentPercent->current_usage = $currentusage;
$currentPercent->save();