Ce que dit Laravel:
$books = App\Book::with('author.contacts')->get();
Ce dont j'ai besoin c'est quelque chose comme ça
$books = App\Book::with('author[contacts,publishers]')->get();
où nous désirons charger plusieurs relations au sein d’une relation.
Est-ce possible?
Tu peux faire
$books = App\Book::with('author.contacts','author.publishers')->get();
La documentation de Laravel sur eager loading recommande de lister les relations dans un tableau comme suit:
$books = App\Book::with(['author.contacts', 'author.publishers'])->get();
Vous pouvez avoir autant de relations que vous le souhaitez. Vous pouvez également spécifier les colonnes à inclure pour une relation comme celle-ci:
//only id, name and email will be returned for author
//id must always be included
$books = App\Book::with(['author: id, name, email', 'author.contacts', 'author.publishers'])->get();
Vous pouvez également ajouter des contraintes comme suit:
$books = App\Book::with(['author: id, name, email' => function ($query) {
$query->where('title', 'like', '%first%');
}, email', 'author.contacts', 'author.publishers'])->get();