Drei Tabellen mit dem Laravel-Eloquent-Modell verbinden
In Laravel wird das Abrufen relationaler Daten mit Eloquent-Modellen vereinfacht. In diesem Artikel wird gezeigt, wie Sie mit Eloquent drei Tabellen verknüpfen, um Daten aus den Tabellen „Artikel“, „Kategorien“ und „Benutzer“ abzurufen.
Beachten Sie das folgende Datenbankschema:
Articles Table | Categories Table | User Table |
---|---|---|
id | id | id |
title | category_name | user_name |
body | user_type | |
categories_id | ||
user_id |
Das Ziel besteht darin, Artikel zusammen mit ihrem entsprechenden Kategorienamen anstelle der Kategorie-ID und dem Benutzernamen anstelle der abzurufen user_id.
Definieren Sie die Beziehungen zwischen den Modellen basierend auf der Datenbank Schema:
Article.php:
namespace App\Models; use Eloquent; class Article extends Eloquent { protected $table = 'articles'; public function user() { return $this->belongsTo('App\Models\User'); } public function category() { return $this->belongsTo('App\Models\Category'); } }
Category.php:
namespace App\Models; use Eloquent; class Category extends Eloquent { protected $table = "categories"; public function articles() { return $this->hasMany('App\Models\Article'); } }
Benutzer .php:
namespace App\Models; use Eloquent; class User extends Eloquent { protected $table = 'users'; public function articles() { return $this->hasMany('App\Models\Article'); } }
So rufen Sie Artikel mit zugehörigen Daten ab:
$articles = \App\Models\Article::with(['user','category'])->get();
Greifen Sie wie folgt auf die zugehörigen Daten zu:
// Retrieve user name $article->user->user_name // Retrieve category name $article->category->category_name
Um Artikel innerhalb einer Kategorie oder nach einer bestimmten Kategorie abzurufen Benutzer:
$categories = \App\Models\Category::with('articles')->get(); $users = \App\Models\Category::with('users')->get();
Die Eloquent-Modelle von Laravel vereinfachen die Aufgabe des Abrufens relationaler Daten erheblich. Indem Sie die Beziehungen zwischen Modellen verstehen und sie in Ihrem Code einrichten, können Sie einfach auf die erforderlichen Daten zugreifen und komplexere Abfragen effizient durchführen.
Das obige ist der detaillierte Inhalt vonWie verbinde ich drei Tische in Laravel mithilfe eloquenter Beziehungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!