Laravel 5

Calcul somme de plusieurs collections

Avatar de Alex
Alex

Bonjour à tous ! Je rencontre une petite colle sur quelque chose que j'essaye de réaliser. J'essaye simplement de faire un classement des membres par rapport aux dons qu'ils ont effectués sur le site.

J'ai donc une table "donations" qui contient le name du membre qui a fait le don et un amount. Je récupère l'ensemble des dons, en listant les 2 colonnes qui m'intéressent via cette fonction :

$donateurs = $this->model->where('visibility', 1)->select(['name','amount'])->get();

J'ai trouvé dans la doc une fonction qui permet d'ordonner la collection. Je peux donc grouper les différents dons par utilisateur via cette fonction :

$donateurs = collect($donateurs)->groupBy('name');

J'obtient donc ceci : https://i.ibb.co/5Bs85mg/tableau.jpg

Comment pourrais-je faire pour avoir un tableau qui contient la somme totale des dons par membre ? Je bloque un peu sur le traitement de la collection... J'aimerais quelque chose qui ressemble à ceci :

"User1" => 85,
"User2" => 60,
"User3" => 15,
etc.

Un grand merci pour votre aide

Posté il y a 5 mois
Avatar de maitrepylos1
maitrepylos1

Et un sum sur votre requête Eloquent ?

$donateurs = $this->model->where('visibility', 1)->select(['name','amount'])->sum('amount')->get();
Posté il y a 5 mois

Vous ne pouvez pas répondre à ce sujet.