Maison  >  Article  >  base de données  >  Comment joindre trois tables dans Laravel en utilisant Eloquent ?

Comment joindre trois tables dans Laravel en utilisant Eloquent ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-12 21:21:02957parcourir

How to Join Three Tables in Laravel Using Eloquent?

Joindre trois tables avec Laravel Eloquent

Introduction

Lorsque vous travaillez avec des bases de données relationnelles, rejoindre tables est souvent nécessaire pour récupérer des données sur plusieurs tables. Cet article montre comment joindre trois tables dans Laravel à l'aide de l'ORM Eloquent, offrant une alternative aux jointures SQL natives.

Schéma de base de données

Considérez le schéma de base de données suivant :

  • Tableau des articles : id, title, body,category_id, user_id
  • Tableau des catégories : id,category_name
  • Table des utilisateurs : id, user_name, user_type

Requête avec Eloquent

Configuration des relations

Tout d'abord, établissez les relations entre les modèles :

// Article.php
class Article extends Eloquent {
    public function user() {
        return $this->belongsTo('App\Models\User');
    }

    public function category() {
        return $this->belongsTo('App\Models\Category');
    }
}

// Category.php
class Category extends Eloquent {
    public function articles() {
        return $this->hasMany('App\Models\Article');
    }
}

// User.php
class User extends Eloquent {
    public function articles() {
        return $this->hasMany('App\Models\Article');
    }
}

Join Query

Pour joindre les trois tables et récupérer les articles avec leur catégorie et les détails de l'utilisateur, utilisez la méthode with() :

$articles = \App\Models\Article::with(['user', 'category'])->get();

Accès aux données associées

Une fois les résultats récupérés, vous pouvez accéder aux données associées en tant que propriétés :

foreach ($articles as $article) {
    echo $article->title . ' - ';
    echo $article->user->user_name . ' - ';
    echo $article->category->category_name;
}

Conclusion

Utilisation Eloquent pour joindre des tables simplifie et accélère la récupération de données dans Laravel. En établissant des relations entre les modèles, vous pouvez facilement accéder et manipuler les données associées.

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!

Déclaration:
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