有什么想法可以用更好的方式更新数据列表吗?
Any idea to update list of data with better way?
使用 Laravel 5.5 和 eloquent。
现在我得到了很多带有数字的数据列表。
Example Data实际上有100多条数据:
user_wallets
--------------------------
|id | points | use_point |
--------------------------
|1 | 10.2 | 502.22 |
|2 | 32.6 | 23.3 |
|3 | 33 | 1020.32 |
--------------------------
想以更好的方式更新观点吗?
比方说,我想用 * 0.55 更新所有点。
以下是我目前的方式,但速度变慢了。
并且此计算会更新一些报价日期。
$rate = $request->rate; //0.55
$wallets = UserWallet::all();
foreach($wallets as $wallet)
{
UserWallet::find($wallet->id)->update(['points'=>$wallet->points*$rate])
}
有什么让它更快的想法吗?或进行此更新的更好方法?
谢谢
您可以尝试使用 each()
方法,因为 $wallets 是一个集合。
所以:
$rate = $request->rate; //0.55
$wallets = UserWallet::all();
$wallets->each(function($item, $key) use(&$rate){
$item->update(['points' => $item->points*$rate])
});
它与 foreach 没有太大区别,但我认为这是 "Eloquent" 方式。
使用 Laravel 5.5 和 eloquent。 现在我得到了很多带有数字的数据列表。 Example Data实际上有100多条数据: user_wallets
--------------------------
|id | points | use_point |
--------------------------
|1 | 10.2 | 502.22 |
|2 | 32.6 | 23.3 |
|3 | 33 | 1020.32 |
--------------------------
想以更好的方式更新观点吗? 比方说,我想用 * 0.55 更新所有点。 以下是我目前的方式,但速度变慢了。 并且此计算会更新一些报价日期。
$rate = $request->rate; //0.55
$wallets = UserWallet::all();
foreach($wallets as $wallet)
{
UserWallet::find($wallet->id)->update(['points'=>$wallet->points*$rate])
}
有什么让它更快的想法吗?或进行此更新的更好方法?
谢谢
您可以尝试使用 each()
方法,因为 $wallets 是一个集合。
所以:
$rate = $request->rate; //0.55
$wallets = UserWallet::all();
$wallets->each(function($item, $key) use(&$rate){
$item->update(['points' => $item->points*$rate])
});
它与 foreach 没有太大区别,但我认为这是 "Eloquent" 方式。