2017-12-13 11 views
0

Laravel 5.5와 웅변을 사용하십시오. 숫자가 많은 데이터 목록이 있습니다. user_wallets더 좋은 방법으로 데이터 목록을 업데이트 하시겠습니까?

-------------------------- 
|id | points | use_point | 
-------------------------- 
|1 | 10.2 | 502.22 | 
|2 | 32.6 | 23.3  | 
|3 | 33  | 1020.32 | 
-------------------------- 

더 나은 방법에 지점을 업데이트 할 어떤 생각 : 예 데이터는 실제로 100 개 이상의 데이터가? 모든 포인트를 * 0.55로 업데이트하려고합니다. 아래의 은 현재의 나의 방식이지만 느려집니다. 이 계산은 일부 쿠폰 날짜로 업데이트됩니다.

$rate = $request->rate; //0.55 
$wallets = UserWallet::all(); 
foreach($wallets as $wallet) 
{ 
    UserWallet::find($wallet->id)->update(['points'=>$wallet->points*$rate]) 
} 

더 빨리 만들 수있는 아이디어는 무엇입니까? 이 업데이트를 수행하는 더 좋은 방법은 무엇입니까?

감사

답변

1
당신은 $ 지갑으로 each() 방법을 사용하여 시도 할 수

는 모음입니다.

그래서 :

$rate = $request->rate; //0.55 
$wallets = UserWallet::all(); 
$wallets->each(function($item, $key) use(&$rate){ 
    $item->update(['points' => $item->points*$rate]) 
}); 

그것은 foreach는 다른 아닌 훨씬이야하지만 나는 그것이 "설득력"방법 생각합니다.

+0

Noted and thanks. 감사합니다. 나는 더 나은 방법을 얻기 전에 이것을 시도 할 것이다. 왜냐하면 현재 업데이트 할 때마다 서버가 느려지 기 때문이다. –