Formation PUB030 : Laravel, 2019 Accéder aux données d'une relation

23.1 Accéder aux champs des tables liées


Une fois que les relations seront bien définies, il sera possible d'accéder facilement aux champs d'une table liée.

Prenons l'exemple d'un contrôleur qui appelle une vue en lui fournissant une instance du modèle Produit :

Contrôleur Laravel (PHP)

$produit = Produit::find('1');

return View('produits.show', compact('produit'));

Si on veut afficher dans un libellé la description de la catégorie du produit, la vue pourra retrouver cette information directement à partir du produit.

Ex :

Vue Laravel (Blade)

Catégorie : {{ $produit->categorie->description }}

Pour que ceci soit possible, il faut avoir codé, dans le modèle du produit, une méthode nommée categorie() qui définit la relation belongsTo() entre un produit et une catégorie.

Le même principe s'applique lorsque les relations hasMany(), belongsToMany(), hasOne(), hasManyThrough(), etc.

Remarquez que dans cet exemple, la vue ne fait aucune requête à la base de données en respect avec les principes MVC. C'est le contrôleur qui, à l'aide d'une requête, a retrouvé les produits dont la vue a besoin. De son côté, la vue a simplement utilisé une relation pour accéder aux informations tirées des tables liées, ce qui est tout à fait correct.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre