Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyertai Tiga Jadual dalam Laravel Menggunakan Eloquent?

Bagaimana untuk Menyertai Tiga Jadual dalam Laravel Menggunakan Eloquent?

Barbara Streisand
Barbara Streisandasal
2024-11-12 21:21:021041semak imbas

How to Join Three Tables in Laravel Using Eloquent?

Menyertai Tiga Jadual dengan Laravel Eloquent

Pengenalan

Apabila bekerja dengan pangkalan data hubungan, menyertai jadual selalunya diperlukan untuk mendapatkan semula data merentas berbilang jadual. Artikel ini menunjukkan cara untuk menyertai tiga jadual dalam Laravel menggunakan Eloquent ORM, menawarkan alternatif kepada gabungan SQL asli.

Skema Pangkalan Data

Pertimbangkan skema pangkalan data berikut:

  • Jadual artikel: id, tajuk, kandungan, id_kategori, id_pengguna
  • Jadual kategori: id, nama_kategori
  • Jadual pengguna: id, nama_pengguna, jenis_pengguna

Menyoal dengan Fasih

Tetapan Perhubungan

Pertama, wujudkan hubungan antara model:

// 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');
    }
}

Sertai Pertanyaan

Untuk menyertai tiga jadual dan mendapatkan semula artikel dengan kategori dan butiran penggunanya, gunakan kaedah with():

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

Mengakses Data Berkaitan

Setelah keputusan diambil, anda boleh mengakses data berkaitan sebagai sifat:

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

Kesimpulan

Menggunakan Fasih untuk menyertai jadual memudahkan dan mempercepatkan pengambilan data dalam Laravel. Dengan mewujudkan perhubungan antara model, anda boleh mengakses dan memanipulasi data berkaitan dengan mudah.

Atas ialah kandungan terperinci Bagaimana untuk Menyertai Tiga Jadual dalam Laravel Menggunakan Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn