Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menggabungkan tiga tabel dengan model fasih laravel

Dengan Eloquent sangat mudah untuk mengambil data relasional. Lihat contoh berikut dengan skenario Anda di Laravel 5.

Kami memiliki tiga model:

  1. Artikel (milik pengguna dan kategori)

  2. Kategori (memiliki banyak artikel)

  3. Pengguna (memiliki banyak artikel)

  1. Artikel.php
    <?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');
        }
    }
  1. Category.php
    <?php
    namespace App\Models;
    
    use Eloquent;
    
    class Category extends Eloquent {
        protected $table = "categories";
    
        public function articles() {
            return $this->hasMany('App\Models\Article');
        }
    }
  1. User.php
    <?php
    namespace App\Models;
    use Eloquent;
    
    class User extends Eloquent {
        protected $table = 'users';
    
        public function articles() {
            return $this->hasMany('App\Models\Article');
        }
    }

Anda perlu memahami relasi dan pengaturan database Anda dalam model. Pengguna memiliki banyak artikel. Kategori ini memiliki banyak artikel. Artikel milik pengguna dan kategori. Setelah Anda mengatur hubungan di Laravel, menjadi mudah untuk mengambil informasi terkait.

Misalnya, jika Anda ingin mengambil artikel dengan menggunakan pengguna dan kategori, Anda harus menulis:

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

dan Anda dapat menggunakan ini seperti ini:

//retrieve user name 
$article->user->user_name  

//retrieve category name 
$article->category->category_name

Dalam kasus lain, Anda mungkin perlu mengambil semua artikel dalam kategori atau mengambil semua artikel pengguna tertentu. Anda dapat menulisnya seperti ini:

$categories = \App\Models\Category::with('articles')->get();
$users = \App\Models\Category::with('users')->get();

Anda dapat mempelajari lebih lanjut di http://laravel.com/docs/5.0/eloquent



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa perbedaan antara INNER JOIN, LEFT JOIN, RIGHT JOIN dan FULL JOIN?

  2. php mysqli_connect:metode otentikasi tidak diketahui oleh klien [caching_sha2_password]

  3. Bangun Antarmuka PHP CRUD dengan Cepat Dengan Alat Generator CRUD Lanjutan PDO

  4. Cara Mendapatkan Setiap Baris Ke-N di MySQL

  5. MySQL antar klausa tidak inklusif?