Laravel 如何在保存模型的新实例时向模型添加特定属性
假设我有一个用户模型:Laravel 如何在保存模型的新实例时向模型添加特定属性,laravel,eloquent,Laravel,Eloquent,假设我有一个用户模型: $user= User::first(); $user->name = 'name'; $user->miles = 10; $user->save(); 假设现有用户在商店里已经有2英里了,但没有使用更新。我想将新的10英里添加到2英里中,因此它将是12英里 有没有什么方法可以通过使用变异子来做到这一点 您不能真正使用观察者,因为您不会同时拥有模型的脏副本和新副本,但您可以根据当前模型属性确定用户是否拥有里程,并做出相应反应 $default = 2
$user= User::first();
$user->name = 'name';
$user->miles = 10;
$user->save();
假设现有用户在商店里已经有2英里了,但没有使用更新。我想将新的10英里添加到2英里中,因此它将是12英里
有没有什么方法可以通过使用变异子来做到这一点 您不能真正使用观察者,因为您不会同时拥有模型的脏副本和新副本,但您可以根据当前模型属性确定用户是否拥有里程,并做出相应反应
$default = 2;
$additional = 10;
$user->miles = is_null($user->miles) ? $default : $user->miles + $additional
在这种情况下,这些(任意)变量将决定计算的执行方式。您不能真正使用观察者,因为您不会同时拥有模型的脏副本和新副本,但您可以根据当前模型属性确定用户是否拥有里程,并做出相应的反应
$default = 2;
$additional = 10;
$user->miles = is_null($user->miles) ? $default : $user->miles + $additional
$user->miles += 10;
$user->save();
在这种情况下,这些(任意)变量将决定如何执行计算
$user->miles += 10;
$user->save();
或者,您可以执行以下操作:
$user->increment('miles', 10);
或者,您可以执行以下操作:
$user->increment('miles', 10);
试试这个:
$plusMiles = 10;
$user = User::find($id);
$user->miles = $user->miles + $plusMiles;
$user->save();
试试这个:
$plusMiles = 10;
$user = User::find($id);
$user->miles = $user->miles + $plusMiles;
$user->save();