Menyertai Tiga Jadual Menggunakan Model Laravel Fasih
Dalam Laravel, mendapatkan data hubungan dipermudahkan dengan model Eloquent. Artikel ini menunjukkan cara untuk menyertai tiga jadual menggunakan Eloquent untuk mendapatkan semula data daripada jadual Artikel, Kategori dan Pengguna.
Pertimbangkan skema pangkalan data berikut:
Articles Table | Categories Table | User Table |
---|---|---|
id | id | id |
title | category_name | user_name |
body | user_type | |
categories_id | ||
user_id |
Matlamatnya adalah untuk mendapatkan semula artikel bersama dengan kategori yang sepadan nama bukannya id_kategori dan nama pengguna bukannya id_pengguna.
Tentukan hubungan antara model berdasarkan pangkalan data skema:
Artikel.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'); } }
Kategori.php:
namespace App\Models; use Eloquent; class Category extends Eloquent { protected $table = "categories"; public function articles() { return $this->hasMany('App\Models\Article'); } }
Pengguna .php:
namespace App\Models; use Eloquent; class User extends Eloquent { protected $table = 'users'; public function articles() { return $this->hasMany('App\Models\Article'); } }
Untuk mendapatkan semula artikel dengan data berkaitan:
$articles = \App\Models\Article::with(['user','category'])->get();
Akses data berkaitan seperti berikut:
// Retrieve user name $article->user->user_name // Retrieve category name $article->category->category_name
Untuk mendapatkan semula artikel dalam kategori atau mengikut kategori tertentu pengguna:
$categories = \App\Models\Category::with('articles')->get(); $users = \App\Models\Category::with('users')->get();
Model Laravel's Eloquent sangat memudahkan tugas untuk mendapatkan data hubungan. Dengan memahami perhubungan antara model dan menyediakannya dalam kod anda, anda boleh mengakses data yang diperlukan dengan mudah dan melakukan pertanyaan yang lebih kompleks dengan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Tiga Jadual dalam Laravel Menggunakan Hubungan Fasih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!