Heim > Datenbank > MySQL-Tutorial > Wie verbinde ich drei Tische in Laravel mit Eloquent?

Wie verbinde ich drei Tische in Laravel mit Eloquent?

Barbara Streisand
Freigeben: 2024-11-12 21:21:02
Original
1038 Leute haben es durchsucht

How to Join Three Tables in Laravel Using Eloquent?

Drei Tabellen mit Laravel Eloquent verbinden

Einführung

Beim Arbeiten mit relationalen Datenbanken das Beitreten Tabellen sind häufig erforderlich, um Daten über mehrere Tabellen hinweg abzurufen. Dieser Artikel zeigt, wie Sie drei Tabellen in Laravel mithilfe des Eloquent ORM verknüpfen und bietet eine Alternative zu nativen SQL-Verknüpfungen.

Datenbankschema

Beachten Sie das folgende Datenbankschema:

  • Artikeltabelle: ID, Titel, Hauptteil, Kategorie_ID, Benutzer_ID
  • Kategorientabelle: ID, Kategoriename
  • Benutzertabelle: ID, Benutzername, Benutzertyp

Abfragen mit Eloquent

Beziehungsaufbau

Stellen Sie zunächst die Beziehungen zwischen den Modellen her:

// 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');
    }
}
Nach dem Login kopieren

Abfrage verbinden

Um die drei Tabellen zu verbinden und Artikel mit ihrer Kategorie und Benutzerdetails abzurufen, verwenden Sie die Methode with():

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

Zugreifen auf verwandte Daten

Sobald die Ergebnisse abgerufen wurden, können Sie auf die zugehörigen Daten als Eigenschaften zugreifen:

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

Schlussfolgerung

Verwenden Eloquent zum Verknüpfen von Tabellen vereinfacht und beschleunigt den Datenabruf in Laravel. Indem Sie Beziehungen zwischen Modellen herstellen, können Sie problemlos auf verwandte Daten zugreifen und diese bearbeiten.

Das obige ist der detaillierte Inhalt vonWie verbinde ich drei Tische in Laravel mit Eloquent?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage