Bonjour à tous.

J'ai 3 tables

intervenant
réunion
theme

La intervenant est relié par la réunion via une table pivot intervenant_réunion. Cette table pivot contient les données intervenant_id, réunion_id mais également theme_id

Dans mes vues, je peu sans problème accèder aux informations de la table intervenant et de son pivot.

Mais comment faire pour accèder a la ligne correspondante de ma table thème afin de récupérer le théme de la réunion ?

J'ai bien trouvé un lien qui parle de créer une nouvelle classe, mais je ne vois pas bien où
https://laravel.io/forum/02-06-2014-how-can-i-access-additional-models-from-a-pivot

Merci

5 réponses


Salut !

Essaye ça :

Tu crées une méthode getThemeAttribute() dans ton model Reunion (ou Intervenant, ça dépend d'où tu veux récupérer...)

Tu recupères le thème avec App\Theme::findOrFail(reunion->intervenant->pivot->theme_id);

Je ne suis pas sûr sur les noms de variable, etc, mais j'espère que tu vois l'idée.

Salut,

Merci de ta réponse, mais que doit contenir la méthode GetThemeAttribute() ? Un truc du genre

return App\theme::find($id);

Car en faisant ca j'ai une belle erreur comme quoi il est impossible de parcourrir un non objet au moment du chargement de la vue, sans même appeller le getter via App\theme::findOrFail.

merci

Bonjour,

le theme_id ne doit pas être sur la table pivot mais sur la table réunions. Du coup, tu peux récupérer le thème par la réunion.

bonjour.

en faite non, car dans mon systeme chacun des intervenants a son thème, de méme, chacun a ses horaire de passage.

Dans ce cas mets la relation thème sur le modèle intervenant