Ingin membuat aplikasi Laravel dengan struktur database yang rapi dan kode yang maintainable? Menguasai relasi data one to many adalah kuncinya. Dengan relasi ini, Anda bisa menghubungkan satu record dengan banyak record lain secara otomatis, sehingga lebih efisien dan powerful.
Dalam panduan ini, kami akan berbagi cara membuat relasi data one to many di Laravel, mulai dari membuat migration, model, mendefinisikan relasi, hingga mengisi data dengan seeder dan menampilkannya di view. Simak informasi berikut ini.
Apa Itu Relasi One To Many?
Pernahkah Anda menemui kasus di mana satu data dapat berelasi dengan data lain? Misalnya, satu kategori bisa memiliki banyak produk, atau satu pengguna bisa memiliki banyak postingan. Hubungan seperti ini dalam basis data dikenal sebagai one-to-many relationship.
Laravel menyediakan fitur Eloquent Relationship yang mempermudah pengelolaan hubungan antar tabel, termasuk relasi one-to-many. Dengan menggunakan fitur ini, Anda dapat mengakses data yang saling berhubungan dengan mudah, tanpa perlu menulis query SQL yang panjang dan kompleks.
Membuat Relasi Data One To Many Di Laravel
Selanjutnya, kita akan mempelajari cara membuat relasi data one to many di Laravel. Sebelum mulai, pastikan Anda sudah menginstal Laravel dan aplikasinya dapat berjalan dengan baik di localhost atau server Anda.
Step 1. Membuat Migration data
Langkah pertama adalah menyiapkan dua tabel, yaitu tabel categories dan products. Pada tabel categories, kita hanya akan menyimpan data name, Sedangkan tabel products akan berisi kolom category_id (sebagai relasi ke kolom id pada tabel categories), serta kolom tambahan seperti name.
kita membuat migration untuk categories caranya dengan menjalankan perintah:
php artisan make:migration create_categories_tableKemudian kita isikan data yang akan digunakan seperti berikut:

Berikutnya kita membuat migration untuk products caranya dengan menjalankan perintah:
php artisan make:migration create_products_tableKemudian kita isikan data yang akan digunakan seperti berikut:

Setelah membuat migration datanya dapat dijalankan perintah php artisan migrate untuk mengirimkan table yang sudah kita buat ke database.
Step 2. Membuat Model
Fungsi model pada Laravel digunakan sebagai jembatan antara aplikasi yang dibuat dengan database, berfungsi untuk mengelola, memproses, dan berinteraksi dengan data. Kita akan membuat 2 model yaitu model category dan product, untuk membuatnya bisa menjalankan kedua perintah berikut :
php artisan make:model Category
php artisan make:model ProductDefinisi Relasi pada Model
Model Category:

Model Product :

Step 3. Membuat seeder
Selanjutnya, kita akan membuat seeder data category dan product yang akan dikirimkan ke databse pada table category dan product dengan cara membuat seedernya dahulu dengan menginputkan perintah :
php artisan make:seeder CategorySeeder dan
php artisan make:seeder ProductSeeder.Isi file seeder database/seeders/CategorySeeder.php berikut:

Isi file seeder database/seeders/ProductSeeder.php berikut:

Kemudian jalankan semua seeder dengan perintah berikut:
php artisan db:seed --class=CategorySeeder
php artisan db:seed --class=ProductSeederStep 4. Membuat Controller
Untuk dapat membuat controller, Anda dapat untuk menjalankan perintah berikut:
php artisan make:controller ProductControllerLangkah selanjutnya, kita akan membuat function view untuk menampilkan relasi data antara data category dan product yang akan kita buat. Berikut adalah contohnya:

Step 5. Membuat tampilan view
Pada step ini, kita akan membuat tampilan view relasi data category dan product yang akan menampilkan data relasi pada folder resources/views/products/index.blade.php. Berikut contoh skrip yang bisa digunakan:

Step 6. Menambahkan Route Untuk Menampilkan Relasi Data Category dan Product
Di dalam file routes/web.php, tambahkan route untuk menampilkan relasi Category dan Product yang sudah dibuat.

Pengujian
Langkah terakhir sesi belajar Laravel untuk Membuat Relasi Data One To Many Di Laravel adalah melakukan pengujian. Silahkan dapat menjalankan php artisan serve untuk menjalankan websitenya.

Penutup
Relasi One to Many di Laravel digunakan ketika satu data di tabel utama dapat memiliki banyak data terkait di tabel lain. Contohnya, satu kategori bisa memiliki banyak produk, di mana setiap produk tetap mengacu pada kategori tertentu melalui kolom foreign key.
Dengan memanfaatkan fitur Eloquent Relationship Laravel, pengelolaan dan pengambilan data antar tabel menjadi jauh lebih efisien. Anda tidak perlu menulis query SQL yang rumit, karena Laravel secara otomatis mengatur relasi berdasarkan definisi pada model. Hasilnya, kode menjadi lebih rapi, terstruktur, mudah dibaca, dan produktivitas pengembangan aplikasi meningkat secara signifikan.
Demikian artikel kami tentang cara membuat relasi data one to many di Laravel, semoga bermanfaat.


