Relationship pada Laravel | One to One

Asslalamualaikum, wr. wb. semoga damai selalu menyertai kita semua.

Bagi kita yang sudah berkecimpung di dunia programming, tentu kita tidak asing lagi dengan yang namanya relationship. Relationship yang dimaksud disini bukan hubungan asmara, melainkan hubungan antar data di dalam database. Pada Laravel sendiri sudah mendukung berbagai macam relationship yang umum kita gunakan, seperti one to one, one to many, many to many, dll. Tapi bagaimana cara implementasinya? yuk cus kita bahas satu persatu.

One to One

Relasi one to one merupakan relasi yang digunakan untuk mengakomodir data yang berhubungan tepat dengan satu data pada tabel yang lain, misalnya seperti table users dengan table preferences. Dalam kasus ini setiap user dalam sistem hanya akan memiliki satu preferensi saja sesuai dengan pengaturan preferensi si user.

one-to-one

namun bagaimana implementasinya? let’s code .. hehe. disini saya menggunakan learavel versi 5.3

Persiapan Model dan Migration

langkah pertama yang akan kita lakukan adalah mempersiapkan model dan migrationnya. ketik pada command line :

perintah tersebut akan menghasilkan model Preference dan migration untuk databasenya, sedangkan untuk user kita tidak perlu membuatnya lagi karena model dan migration untuk user sudah ada di bawaan laravel.

setelah itu mari kita isi migration untuk table prefeerences sesuai dengan erd diatas

lalu jalankan migration

setelah itu cek dan pastikan database sudah terisi dengan table tersebut.

Note :

jika migrasi gagal coba cek file .env dan pastikan konfigurasi database sudah benar

Konfigurasi Model

Setelah table terbentuk, langkah selanjtnya adalah kita akan melakukan konfigurasi pada model yang kita buat.

tambahkan sintaks berikut pada app/User.php

sintaks tersebut digunakan untuk mengindikasikan bahwa user mempunyai hubungan yaitu satu buah preference. lihat dokumentasinya disini

lalu tambahkan sintak berikut pada app/Preference.php

sintaks tersebut mengindikasikan bahwa preference merupakan sebuah bagian dari user.

Pengisian data

langkah selanjutnya adalah kita akan coba membuat data dummy dengan seeder. mari kita buat seederbernama OneToOneSeeder

isi sebagai berikut

lalu ubah file seeds/DatabaseSeeder.php

lalu jalankan perintah

pastikan data sudah masuk kedalam database

Pemanggilan data

untuk pengaksesan data, disini kita akan menggunakan laravel tinker

lalu coba kita panggil user1

kemudian coba kita panggil preference untuk user1

mudah bukan.. hehe.. namun disini sebenarnya ada kekurangan, yaitu kita harus menggunakan method get() untuk mendapatkan prefence user. Tenang saja, ada cara lain yang lebih mudah yaitu menggunakan Dynamic Properties.

kita tinggal ubah pemanggilannya seperti ini :

atau seperti ini :

okesip lanjut lagi hehe..

Update data

Melalui penggunaan eloquent kita dapa dengan mudah memanipulasi data yang kita inginkan, misalnya kita ingin merubah data preference untuk user1 menjadi “id” untuk language dan “idr” untuk currency

lalu coba kita cek lagi data kita

yak sudah berubah.. ez kan haha

oke sampai sini dulu.. cheers and have a nice code 😀

Widi Hastomo

Hai, Nama saya Widi Hastomo. Saya adalah seorang software enginer yang punya passion di bidang web development. Saya sudah berada di dunia web development sejak tahun 2014 dan saat ini berdomisili di semarang, Jawa Tengah.

Relationship pada Laravel | One to One