Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 如何在保存模型的新实例时向模型添加特定属性_Laravel_Eloquent - Fatal编程技术网

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();