Besoin d'aide ?

Génération d'un classement pour un club sportif

Avatar de InsaneBobby
InsaneBobby

Hello à tous,

Je suis confronté à une problèmatique sur un projet d'application pour un club sportif.

Chaque member participe à des championnats qui sont découpés en Poule et pour chaque Poule, il y a plusieurs tournois dans lequel un joueur marque des points

Au niveau relation cela donne

  • Un Championnat a plusieurs Poules
  • Une Poules a plusieur tournois
  • Un Joueur appartient à une poule

J'ai également créé un table de résultat avec Id du tournoi, id de la poule, id joueur et les points qu'il a marqué.

Ce qui donne les tables suivantes :

  • championships
  • poules
  • tournaments
  • results

Il y a aussi une table pivot poule_user.

L'idée serait de recuperer le classement d'une poule avec le résultat de tous les points marqués par tournois ainsi que le total.

Dans l'idée çà donnerait un truc dans ce style

| Place | Joueur | Total | Pts Manche 1 | Pts Manche 2 | Pts Manche 3 |

J'ai créé une relation $poule->results afin de recuperer le classement avec le total. Et cela fonctionnae

public function results()
    {
        return $this->hasMany('App\Model\Competition\Result', 'poule_id', 'id')
            ->select(\DB::raw('sum(`pts`) as `total`'))
            ->groupBy('user_id')
            ->orderByRaw('SUM(pts) DESC');
    }

Donc j'arrive bien a avoir un classement en faisant un foreach sur $poule->results

Ma question est la suivante. Existe t'il un moyen de récuperer un tableau complet avec tous les résultats + le total en passant par les relations Laravel. Ou je dois absolument passé par une query ?

Merci pour votre aide.

Vous ne pouvez pas répondre à ce sujet.