我有以下代码:
$user->update([
'rating' => DB::raw('rating + 1'),
'point' => DB::raw('point + 1'),
'money' => DB::raw('money + 5'),
]);
如果我们现在转到money字段($ user-> money),则将返回该表达式
'money' =>
object(Illuminate\Database\Query\Expression)
protected 'value' => string 'money + 5'
是否有可能获得新的价值,例如金钱,而无需再次访问数据库?
答案 0 :(得分:2)
简单点。
$user->increment('rating',1);
$user->increment('point'); //default value is 1
$user->increment('money', 5);
答案 1 :(得分:1)
使用此
$user->update([
'rating' => $user->rating + 1,
'point' => $user->point + 1,
'money' => $user->money + 5,
]);
或
$user->rating = $user->rating + 1;
$user->point = $user->point + 1;
$user->money = $user->money + 1;
$user->save()
答案 2 :(得分:1)
您似乎想得太多,只需执行以下操作即可:
$user->rating += 1;
$user->point += 1;
$user->money += 5;
然后运行
$user->save();
,然后,当您访问上述属性时,它应该显示更新的值。
答案 3 :(得分:1)
使用此
$user->rating += 1; $user->rating = $user->rating + 1;
$user->point += 1; or $user->point = $user->point + 1;
$user->money += 5; $user->money = $user->money + 5;
如上一个答案中所述
如果您需要求和结果,也可以这样做
$data = ['rating' => $user->rating + 1,
'point' => $user->point + 1,
'money' => $user->money + 5 ];
$user->update($data);
它将以数组格式为您提供相同的数据。