Diskusi Eloquent Relationship

Guna relasi

Guna relasi

by SUGENG WIDODO -
Number of replies: 7

Pada program Perpus yang kita buat, terdapat field cat_id pada tabel buku. Field cat_id ini adalah foreign key di tabel buku, dan primary key dari tabel kategori.

Table Buku berisi field : id, title, author, cat_id

Table Kategori berisi field : cat_id, description

Pada matakuliah database, dipelajari materi SQL.  Dimana kita dapat menggabungkan dua table menggunakan join atau where.  Contoh Query untuk penggabungan tabel buku dan Kategori adalah sebagai berikut :

 

Select title, description form buku inner join kategori on buku.cat_id = kategori.cat_id
 

dengan query diatas akan dapat ditampilan semua judul dari table buku, dan description dari tabel kategori yang memiliki data cat_id sama.

Menurut saudara, dimanakah query tersebut dapat diimplementasi di Laravel.  Apakah di Model, Controller, View, atau Route.  Berikan argumentasi singkat.

In reply to SUGENG WIDODO

Re: Guna relasi

by HILMIYAH MAWADDAH -
Implementasi query untuk penggabungan dua tabel (JOIN) pada Laravel dapat dilakukan di Controller. Lebih tepatnya, di dalam method pada Controller yang bertanggung jawab menangani data terkait tabel tersebut.
In reply to SUGENG WIDODO

Re: Guna relasi

by FATIH NUR ACHMAD -
Umumnya jika query tersebut sering digunakan, kita bisa mengimplementasikannya dalam Model karena bsia digunakan kembali tanpa perlu menulis ulang dibagian kode
In reply to SUGENG WIDODO

Re: Guna relasi

by REVA RAHMA NADIRA -
Pada Laravel, query tersebut dapat diimplementasikan di dalam model menggunakan fitur Eloquent ORM yang menyederhanakan interaksi dengan database.
In reply to SUGENG WIDODO

Re: Guna relasi

by RESYA AL MUFQI -
Dalam framework Laravel, query tersebut sebaiknya diimplementasikan di dalam Controller. Berikut adalah beberapa alasan:

1. Controller sebagai Pengendali Logika Aplikasi:
Controller dalam Laravel bertanggung jawab untuk mengendalikan logika aplikasi. Membuat query untuk mengambil data dari database dan menyusunnya adalah bagian dari logika aplikasi, dan controller adalah tempat yang tepat untuk menangani hal ini.
2. Pemisahan Tanggung Jawab:
Laravel menganjurkan prinsip pemisahan tanggung jawab (Separation of Concerns), di mana setiap bagian aplikasi memiliki tanggung jawabnya sendiri. Controller adalah tempat yang sesuai untuk mengelola interaksi dengan database dan mengambil data.
3. Mempermudah Pengujian (Testing):
Dengan menempatkan query di dalam controller, Anda dapat dengan mudah menguji fungsionalitas query tersebut melalui pengujian unit. Ini memudahkan untuk memastikan bahwa query berjalan dengan benar dan memberikan hasil yang diharapkan.
In reply to SUGENG WIDODO

Re: Guna relasi

by DEA RISMI OKTORIS -
Secara singkat, query tersebut dapat diimplementasikan di dalam Model Laravel untuk menjaga prinsip "Fat Model, Skinny Controller". Dengan penempatan query di dalam model, logika akses data ditempatkan di tempat yang sesuai (model), dan controller bertanggung jawab memanggil metode yang diperlukan dari model tersebut. Ini membantu memisahkan tanggung jawab masing-masing komponen dalam aplikasi dan membuat kode lebih mudah dipahami dan dikelola.
In reply to SUGENG WIDODO

Re: Guna relasi

by HASAN ASKARY -
1. bisa diimplementasikan dimana saja sesuai kebutuhan, jika aplikasi lebih kecil dan tidak memerlukan struktur yang kompleks, bisa digunakan query JOIN dan WHERE langsung di dalam metode controller.

2. jika proyek besar dan memerlukan struktur yang kompleks, kita bisa menggunakan model yang memberikan keuntungan dalam hal pengorganisasian dan pemeliharaan kode karena dapat mendefinisikan relasi antara tabel-tabel tersebut dan menggunakan Eloquent untuk menggabungkan dan mengambil data dengan lebih mudah dan terstruktur.

3. bisa juga ditempatkan di route untuk kasus sederhana dan cepat. Namun, untuk kejelasan dan pemeliharaan yang baik, sebaiknya gunakan controller.