Maison > base de données > tutoriel mysql > Comment récupérer des relations imbriquées dans Laravel : accéder aux personnes abonnées à un événement sur plusieurs tables intermédiaires ?

Comment récupérer des relations imbriquées dans Laravel : accéder aux personnes abonnées à un événement sur plusieurs tables intermédiaires ?

Linda Hamilton
Libérer: 2024-11-17 02:38:03
original
576 Les gens l'ont consulté

How to Retrieve Nested Relationships in Laravel: Accessing Persons Subscribed to an Event Across Multiple Intermediary Tables?

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 :

  • Événement : appartient à la ville
  • Ville : a de nombreuses entreprises, a de nombreux événements
  • Entreprise : appartient à la ville, a de nombreux Personnes
  • Personne : appartient à l'entreprise, appartient à de nombreux événements (via EventScore)

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();
Copier après la connexion

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal