2017-12-13 2 views
0

Mit Laravel 5.5 und eloquent. Jetzt habe ich eine Menge Daten Liste mit Nummer. Beispieldaten haben tatsächlich mehr als 100 Daten: user_walletsIrgendeine Idee, um Liste der Daten mit besserer Weise zu aktualisieren?

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

eine Idee, den Punkt in besseren Wegen zu aktualisieren? sagen wir, ich möchte alle Punkte mit * 0,55 aktualisieren. unten ist meine derzeitige Art und Weise, aber es verlangsamt sich. und diese Berechnung wird mit einem Angebotsdatum aktualisiert.

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

keine Idee, um es schneller zu machen? oder besser, um dieses Update zu machen?

Dank

Antwort

1

Sie könnten versuchen, die each() Methode wie $ Portemonnaies verwendet, ist eine Sammlung.

So:

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

Es ist nicht viel anders als ein foreach aber ich denke, es ist der „Eloquent“ Weg.

+0

Bekannt und danke. Ich werde dies versuchen, bevor ich bessere Wege beschreite, weil es jedes Mal, wenn es aktualisiert wird, langsam wird. –

Verwandte Themen