Apa itu One To Many? Ini Penjelasan Lengkapnya

Konten dari Pengguna
14 April 2022 18:29 WIB
·
waktu baca 4 menit
comment
0
sosmed-whatsapp-white
copy-link-circle
more-vertical
Tulisan dari How To Tekno tidak mewakili pandangan dari redaksi kumparan
Ilustrasi apa itu one to many. Foto: cottonbro/Pexels
zoom-in-whitePerbesar
Ilustrasi apa itu one to many. Foto: cottonbro/Pexels
ADVERTISEMENT
Apa itu one to many merupakan hubungan Eloquent didefinisikan sebagai metode pada kelas model Eloquent kamu. Sebab, hubungan juga berfungsi sebagai pembuat kueri yang kuat, mendefinisikan hubungan sebagai metode menyediakan rantai metode dan kemampuan kueri yang kuat.
ADVERTISEMENT
Misalnya, kamu dapat menghubungkan batasan kueri tambahan pada hubungan di bawah ini:
Sebelum mengetahui contoh relasi one to many, berikut adalah penjelasan yang perlu kamu ketahui terlebih dahulu.

One to One

Ilustrasi one to one. Foto: Pakata Goh/Unsplash
Hubungan satu-ke-satu adalah tipe yang sangat dasar dari hubungan database. Misalnya, model Pengguna mungkin dikaitkan dengan satu model Telepon.
Untuk mendefinisikan hubungan ini, kamu akan menempatkan metode telepon pada model Pengguna. Metode telepon harus memanggil metode hasOne dan mengembalikan hasilnya. Metode hasOne tersedia untuk model kamu melalui kelas dasar Illuminate\Database\Eloquent\Model model:
Argumen pertama yang diteruskan ke metode hasOne adalah nama kelas model terkait. Setelah hubungan didefinisikan, kamu dapat mengambil catatan terkait menggunakan properti dinamis Eloquent. Properti dinamis memungkinkan kamu mengakses metode hubungan seolah-olah itu adalah properti yang ditentukan pada model:
ADVERTISEMENT
Eloquent menentukan kunci asing dari hubungan berdasarkan nama model induk. Dalam hal ini, model Telepon secara otomatis diasumsikan memiliki kunci asing user_id. Jika kamu ingin mengganti konvensi ini, kamu dapat meneruskan argumen kedua ke metode hasOne:
Selain itu, Eloquent mengasumsikan bahwa kunci asing harus memiliki nilai yang cocok dengan kolom kunci utama induknya. Dengan kata lain, Eloquent akan mencari nilai kolom id pengguna di kolom user_id dari catatan Telepon.
Jika kamu ingin relasi menggunakan nilai kunci utama selain id atau properti $primaryKey model, dapat meneruskan argumen ketiga ke metode hasOne:

Mendefinisikan Kebalikan dari Hubungan

Ilustrasi apa itu one to many. Foto: cottonbro/Pexels
Jika kamu ingin mengakses model Telepon dari model pengguna, maka tentukan hubungan pada model Telepon yang memungkinkan kamu untuk mengakses pengguna yang memiliki telepon. Kamu dapat mendefinisikan kebalikan dari hubungan hasOne menggunakan metode milikTo:
ADVERTISEMENT
Saat memanggil metode pengguna, Eloquent akan mencoba menemukan model Pengguna yang memiliki id yang cocok dengan kolom user_id pada model Telepon.
Eloquent menentukan nama kunci asing dengan memeriksa nama metode hubungan dan menambahkan nama metode dengan _id. Jadi, dalam hal ini, Eloquent mengasumsikan bahwa model Telepon memiliki kolom user_id.
Namun, jika kunci asing pada model Telepon bukan user_id, Anda dapat memberikan nama kunci khusus sebagai argumen kedua ke metode milik:
Jika model induk tidak menggunakan id sebagai kunci utamanya, atau kamu ingin menemukan model terkait menggunakan kolom yang berbeda, kamu dapat meneruskan argumen ketiga ke metode milik. Kepemilikan yang menentukan kunci khusus tabel induk:
ADVERTISEMENT

Apa itu One to Many?

Ilustrasi apa itu one to many. Foto: cottonbro/Pexels
Apa itu One to Many relationship banyak digunakan untuk mendefinisikan hubungan di mana satu model adalah induk dari satu atau lebih model anak.
Misalnya, posting blog mungkin memiliki jumlah komentar yang tidak terbatas. Seperti semua hubungan Eloquent lainnya, hubungan satu-ke-banyak didefinisikan dengan mendefinisikan metode pada model Eloquent kamu:
Ingat, Eloquent secara otomatis menentukan kolom kunci asing yang tepat untuk model Komentar. Secara konvensi, Eloquent akan mengambil nama "snake case" dari model induk dan menambahkannya dengan _id. Jadi, dalam contoh ini, Eloquent akan menganggap kolom kunci asing pada model Komentar adalah post_id.
ADVERTISEMENT
Setelah metode hubungan didefinisikan, kita dapat mengakses kumpulan komentar terkait dengan mengakses properti komentar. Ingat, karena Eloquent menyediakan "properti hubungan dinamis", kamu dapat mengakses metode hubungan seolah-olah mereka didefinisikan sebagai properti pada model:
Karena semua relasi juga berfungsi sebagai pembuat kueri, kamu dapat menambahkan batasan lebih lanjut ke kueri relasi dengan memanggil metode komentar dan melanjutkan merangkai kondisi ke kueri:
Seperti metode hasOne, kamu juga dapat mengganti kunci asing dan lokal dengan meneruskan argumen tambahan ke metode hasMany:
Demikian penjelasan apa itu One to Many beserta jenis lainnya yang perlu kamu ketahui.
ADVERTISEMENT
(DEEM)