Tutorial Dasar Relasi Table di Laravel Dengan Eloquent

Relasi table di Laravel dengan Eloquent sangat mudah dilakukan karena tidak memerlukan script atau sintak yang rumit. Hanya cukup dengan sedikit mengkonfigurasi Model pada Laravel. Nah pada tutorial kali ini saya akan membahas tutorial dasar tentang bagaimana cara melakukan join atau relasi table di Laravel dengan Eloquent.

Relasi yang akan kita bahas adalah One To Many, One To One dan Many To Many. Sebenarnya ada lagi jenis relasi table di Laravel dengan Eloquent yaitu Has Many Through dan Polymorphic Relations tapi karena kedua relasi tersebut sedikit rumit, jadi kita akan mulai dengan yang dasar terlebih dahulu supaya kita tidak bingung.

Relasi Table di Laravel Dengan Eloquent # One To Many

Sesuai dengan namanya, relasi ini adalah suatu hubungan dimana satu entitas pertama bisa mempunyai banyak hubungan pada entitas yang lain. Misalkan begini, kita mempunyai 2 buah table yaitu user dan juga article. Nah, jadi bentuk relasinya adalah setiap user dapat memiliki banyak artikel.

OK, sekarang kita akan mulai membuat table users dan juga articles. 

users.sql

articles.sql

 Dari script sql diatas kita dapat melihat bahwa table users memiliki relasi dengan table articles dimana pada table articles terdapat kolom user_id yang merupakan Foreign Key untuk id dari table users.

Sekarang kita buat model untuk kedua table tersebut. 

User.php

 Article.php

 Sekarang kita buat controller untuk menampilkan artikel tersebut. 

ArticleController.php

Lalu kita buat script untuk menampilkan data artikel tersebut kedalam views. Buat file index.blade.php di direktori app/views/article.

index.blade.php 

 Jangan lupa untuk membuat route untuk controller tersebut

 Output dari script diatas adalah sebagai berikut :

Relasi Table di Laravel Dengan Eloquent # One To Many

Sekarang kita akan merubah model dari User.php supaya ketika kita mengklik link user, maka akan tampil artikel apa saja yang sudah diterbitkan oleh user tersebut.

User.php

Sekarang kita buat controller untuk menampilkan user tersebut.

UserController.php

Lalu kita buat views untuk user tersebut. Buat file profile.blade.php di dalam direktori app/views/user.

profile.blade.php

Dan jangan lupa untuk menambahkan route-nya.

hasil dari script diatas adalah sebagai berikut :

Relasi Table di Laravel Dengan Eloquent # One To Many 2

Relasi Table di Laravel Dengan Eloquent # One To One

Sekarang kita akan lanjut kepada relasi One To One. Berbeda dengan One To Many, One To One adalah sebuah hubungan antara 1 entitas yang hanya memiliki 1 hubungan saja dengan entitas lain. Misalkan contohnya adalah 1 user memiliki 1 alamat. Sekarang kita buat table address.

Dari script SQL diatas, kita dapat melihat bahwa table addresses memiliki relasi dengan table users, dapat dilihat dengan kolom user_id pada table addresses yang merupakan id dari table users. Sekarang kita buat model untuk table addresses.

Address.php

Lalu kita ubah model User.php menjadi seperti ini

User.php

Sekarang kita modifikasi views pada app/user/profile.blade.php.

profile.blade.php

 Output dari script diatas adalah sebagai berikut :

Relasi Table di Laravel Dengan Eloquent # One To One

Sangat mudah kan ? kita lanjut ke relasi yang terakhir pada bahasan kita tentang relasi table di Laravel dengan Eloquent yaitu Many To Many.

Relasi Table di Laravel Dengan Eloquent # Many To Many

Seperti namanya juga, relasi ini juga hubungannya adalah banyak entitas dengan entitas yang lain. Contohnya seperti ini, setiap user dapat memiliki role lebih dari 1 role, misalkan Writer dan juga Administrator. Kita akan membuat 2 buah table baru yaitu roles dan juga role_users.

role.sql

 role_users.sql

Kita dapat melihat bahwa table role_users memiliki relasi dengan table roles dan juga users dimana terdapat kolom role_id yang merupakan Foreign Key dari table roles dan juga user_id yang juga merupakan Foreign Key dari table users. Sekarang kita buat sebuah model yaitu Role.php

Role.php

Dan kita tinggal memodifikasi model User.php

User.php

Lalu kita modifikasi profile.blade.php untuk menampilkan role dari user tersebut.

Output dari script diatas adalah sebagai berikut ini :

Relasi Table di Laravel Dengan Eloquent # Many To Many

Sekian dulu, sangat mudah kan bagaimana cara untuk melakukan join atau relasi table di Laravel dengan Eloquent. Tentunya sangat menghemat waktu karena kita tidak perlu lagi membuat sebuah query SQL yang rumit untuk melakukan join table tersebut.

Kamu bisa mendownload full source code dari tutorial ini pada link dibawah ini, silahkan tinggalkan komentar dan semoga bermanfaat 😀

Download Link

Berlangganan Artikel

Daftarkan email anda sekarang dan dapatkan update terbaru dari artikel saya

I will never give away, trade or sell your email address. You can unsubscribe at any time.

Powered by Optin Forms
Latest Comments
  1. Agus Januari 23, 2016
    • El Cicko Januari 24, 2016
  2. Frid Mei 12, 2016
  3. forgicinternational Agustus 31, 2016
  4. kwkwkwwk land Juni 16, 2017

Tinggalkan Balasan