Relations imbriquées dans Laravel
Les relations imbriquées vous permettent d'accéder à des modèles qui se trouvent à plusieurs niveaux en profondeur dans votre structure de données. Cela peut être un défi à réaliser dans Laravel, surtout avec des relations complexes.
Énoncé du problème :
Récupérer une liste de personnes inscrites à un événement, malgré plusieurs tables intermédiaires entre les modèles d'événement et de personne.
Structure de la base de données :
Le La structure de la base de données implique les tables suivantes : événements, villes, entreprises et personnes.
Relations modèles :
Tentatives infructueuses :
Tentatives d'utilisation avec( ) et les méthodes WhereHas() n'ont pas produit le résultat souhaité résultat.
Solution :
Pour résoudre ce problème, utilisez la requête suivante :
return Event::with('city.companies.persons')->get();
Cette requête charge avec impatience la ville, les entreprises, et les personnes associées à l'événement.
Alternativement, si vous souhaitez sélectionner uniquement des champs spécifiques parmi les personnes table :
return Event::with(['city.companies.persons' => function ($query) { $query->select('id', '...'); }])->get();
Cette approche garantit que seuls les champs spécifiés sont récupérés, optimisant ainsi la requête.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!