Laravel 5

Trois tables l'une d'elle sert d'une table pivot

  • Avatar de BilalIghmouracene
    Membre depuis :
    08/06/2017
    Messages :
    11

    Bonjour,

    Voici mon problème, j'ai trois tables :
    1- Semestres

    • semestre 1
    • semestre 2
      -...
      2- Unites
      -Langue

      • histoire
        -...
        3- Modules (table pivot)
        -Français 1
        -anglais 2
        -...

      J'ai donc des semestres qui contienent plusieurs unites, les unites qui contienent plus semestres et plusieurs modules, et un module appartient à une seule unite
      Mon souhait est de tout récupérer en cascade et de rassembler les modules dans la même unite sans la répéter.

      Pour tous récupérer j'ai fait ça :
      $semestres = Semestre::with('unites')->with('unites.modules')->get();

      dans le Model Semestre j'ai défini cette fonction :

      public function unites(){
      return $this->belongsToMany('App\Unite','modules')->withPivot('module as module');
      }

      et dans la vue j'ai fait ça :

      @foreach($semestres as $semestre)

      {{$semestre->semestre}}

      @foreach($semestre->unites as $unite)

      {{$unite->unite}}

      {{$unite->module}}

      @endforeach
      @endforeach

      Le résultat que j'ai eu :

    • semestre 1

      -langue
      -français

      -langue
      -anglais

      Alors que moi je souhaite avoir ça :

      • semestre 1

        -langue
        -français
        -anglais

    (sans répéter langue 2 fois)

    Je vous remercie par avance.

Vous ne pouvez pas répondre à ce sujet.