Besoin d'aide ?

Afficher des données à partir de clé étrangère

  • Avatar de anonymus
    Membre depuis :
    24/08/2019
    Messages :
    8

    Bonjour,

    Voici le contexte : j'ai une table "vetements" (les champs : id, name) et une table "couleurs" (les champs : id, name, vetements_id donc vetements_id est une clé étrangère). C'est dans le cadre d'un questionnaire. Par exemple : "T-shirt" et la personne a le choix entre Rouge, Vert ou Jaune par exemple. Donc, dans la table "couleurs" on aura par exemple :

    • id : 1
    • name : rouge
    • vetements_id : 4 (qui correspond donc à l'id du vêtement dans la table "vetements")
      Autre ligne :
    • id : 2
    • name : vert
    • vetements_id : 4

    (Tout est bidon, mais je change le contexte pour simplifier les choses)

    Voici le soucis : j'aimerais afficher tous les vêtements et les couleurs associées dans un questionnaire. Donc dans un premier temps, j'ai pensé à faire une boucle pour afficher tous les vêtements donc aucun problème. Mais au moment de vouloir afficher les couleurs associées au vêtements, cela m'affiche toutes les couleurs de la table, et non les couleurs associés au vêtement (vetements_id).

    Voici ce que j'ai fais :
    https://goopics.net/a/jYGdmAeO

  • Avatar de bestmomo
    Membre depuis :
    07/04/2013
    Messages :
    2559

    Salut,

    Tu mets en place des relations avec Eloquent mais tu ne les utilises pas. Tu devrais lire la documentation sur le sujet.

    Dans ton cas il faut faire de l'eager loading :

    $vetements = Vetement::with('couleurs')->get();

    Ensuite il suffit de boucler dans la collection obtenue :

    @foreach($vetements as $vetement)

    @foreach($vetement->couleurs as $couleur)

    @endforeach

    @endforeach
  • Avatar de anonymus
    Membre depuis :
    24/08/2019
    Messages :
    8

    Bonjour,

    Merci pour ta réponse ! En effet c'est bien l'eager loading, merci je comprend mieux !

Vous ne pouvez pas répondre à ce sujet.