如何在保存模型的新实例的同时向模型添加特定属性

时间:2018-03-29 19:10:11

标签: laravel eloquent

假设我有一个用户模型:

$user= User::first();
$user->name = 'name';
$user->miles = 10;
$user->save();

假设现有用户已经存在2英里但没有使用UPDATE我想将新的10英里添加到2,所以它将是12英里!

有没有办法可以使用mutators呢?

3 个答案:

答案 0 :(得分:1)

你不能真正使用观察者,因为你不会同时拥有模型的脏和新副本,但是你可以根据当前的模型属性确定用户是否有里程数,并做出相应的反应

$default = 2;
$additional = 10;
$user->miles = is_null($user->miles) ? $default : $user->miles + $additional

在这种关注中,那些(任意)变量将指示如何执行计算。

答案 1 :(得分:1)

$user->miles += 10;
$user->save();

或者,您可以这样做:

$user->increment('miles', 10);

答案 2 :(得分:0)

试试这个:

$plusMiles = 10;
$user = User::find($id);
$user->miles = $user->miles + $plusMiles;
$user->save();