Tutorial Laravel #24 : Relasi One To Many Eloquent


relasi one to many eloquent laravel

Relasi One To Many Eloquent – Setelah sebelumnya kita belajar tentang relasi One To One dengan Eloquent, pada tutorial ini kita masih akan bermain dengan relasi table pada laravel.

Kita akan belajar relasi One To Many Eloquent. silahkan baca juga tutorial sebelumnya jika belum, yaitu tentang relasi one to one eloquent.

Relasi One To Many Eloquent

Seperti yang sudah kita pelajari sebelumnya, Eloquent memiliki fitur untuk membuat relasi antar table dengan mudah. relasi one to many adalah relasi antar table yang mana satu buah table bisa memiliki banyak relasi ke record data yang ada di table yang satunya.

Akan saya contohkan dengan table articles, dan table tags. sebuah article bisa memiliki banyak tags, dan banyak tags bisa dimiliki oleh satu article. jadinya one to many atau many to one. 1 .. n atau n .. 1.

Persiapan

Kita akan membuat dua buah table, yaitu table article, dan table tags. dimana nantinya akan kita buat relasi table one to many (satu article bisa memiliki banyak tags).

Silahkan teman-teman buat kedua buah table tersebut dengan fitur migration dan mengisi data dummy ke dalam kedua table tersebut dengan menggunakan Faker.

Baca : Seeding dan Faker Pada Laravel

atau jika teman-teman ingin cepat, silahkan import sql berikut.

SQL

jangan lupa untuk mengatur pengaturan koneksi database, di sini database yang saya gunakan adalah “belajar_laravel“.

.env

Persiapan kita anggap selesai.

Relasi One To Many Eloquent

Perhatikan sedikit konsep relasi antar table laravel one to many berikut.

relasi satu ke banyak eloquent laravel

relasi satu ke banyak eloquent laravel

Perhatikan. di sini kita memiliki beberapa data pada table articles. dan kita juga telah memiliki beberapa data pada table tags. kedua table ini akan dihubungkan secara otomatis oleh kolum article_id yang ada pada table tags.

maksudnya, article_id di ambil dari nama table (article) dan kolum (id) pada table tersebut. hal ini sudah secara otomatis dijalankan oleh eloquent. jadi silahkan teman-teman sesuaikan.

Seperti pada saat membuat contoh relasi one to one, kita membutuhkan model untuk kedua buah table tersebut. yaitu model article dan model tag.

Buat model article. disini saya membuat model dengan php artisan.

php artisan make:model Article

Karena sebelumnya kita membuat table dengan nama articles, jadi sudah sesuai plural penamaan pada nama model dan table nya. kita tidak perlu lagi mendeklarasikan protected $table = “articles”. tapi jika teman-teman ingin mendeklarasikan nya tidak masalah juga.

belajar_laravel/app/Article.php

perhatikan pada model Article.php di atas. kita membuat fungsi untuk memberitahukan ke sistem bahwa kita akan membuat relasi Many ke model atau table tags.

kita mendeklarasikan table/model article ini dengan model/table tag. menggunakan fungsi return $this->hasMany(‘App\Tag’). yang berarti kita memberitahukan bahwa article bisa mempunyai banyak tag.

Selanjutnya kita akan membuat kebalikannya.

Buat model Tag.php.

php artisan make:model Tag

Kemudian tulis fungsi berikut.

belajar_laravel/app/Tag.php

Pada model Tag.php ini, kita deklarasikan bahwa table Tags ini dimiliki atau terhubung dengan model/table article.

Selanjutnya, kita akan mencoba menampilkan hasil dari contoh relasi one to many eloquent laravel ini.

Buat sebuah route baru.

belajar_laravel/routes/web.php

route yang kita buat ini akan menjalankan method index() pada controller WebController.

Buat controller WebController.php.

php artisan make:controller WebController

Selanjutnya buat method index() di dalamnya.

belajar_laravel/app/Http/controllers/WebController.php

Perhatikan pada method index() di atas, kita mencoba mengambil semua data dari table articles melalui model article. dan kita passing data nya ke view article.blade.php.

Pada view article.blade.php akan kita tampilkan semua article, lengkap dengan tag nya masing-masing yang sudah kita hubungkan relasi nya pada model Article.php dan model Tag.php.

Buat view article.blade.php.

belajar_laravel/resources/views/article.blade.php

dan coba kita lihat hasilnya sekarang.

php artisan serve

dan akses route article

localhost:8000/article

Relasi One To Many Eloquent

Relasi One To Many Eloquent

Seperti yang teman-teman perhatikan di atas, kita bisa langsung mengakses data tag untuk masing-masing judul, kita bisa langsung mengaksesnya dari data article.

Untuk menghitung jumlah tag masing-masing article, kita bisa langsung menggunakan fungsi count() seperti yang ada pada contoh di atas.

Oke teman-teman terima kasih, sekian tutorial relasi one to many eloquent laravel. selanjutnya kita akan belajar relasi many to many dengan eloquent laravel.

Jika teman-teman ingin membaca Dokumentasi laravel tentang relasi many to many eloquent, teman-teman bisa membaca nya di sini.

 



Diki Alfarabi Hadi

Coding enthusiast. Someone who love learn something new. especially about web programming and web design. happy to share about knowledge and learn from other.

TUTORIAL MENARIK LAINNYA

Diskusi
Tidak Ada Komentar

Tulis Komentar / Pertanyaan

Your email address will not be published. Required fields are marked *