Besoin d'aide ?

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

Avatar de anonymus
anonymus

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
bestmomo

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
anonymus

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.