Relasi One to One Elequent ORM pada Laravel

Relasi One to One pada Laravel – Kali ini kodingin.com mau melanjutkan tutorial laravel sebelumnya, sebelumnya kita sudah membahas mengenai CRUD(create, read, update and delete) pada laravel menggunakan Elequent ORM namun tanpa relasi antar tabel database.

Relasi one to one adalah relasi yang hanya mempunyai hubungan pada satu data, bahasa kerennya satu entitas untuk satu emtitias, bahasa mudahnya bagi seorang programing yaitu hubungan satu field pada tabel berhubungan dengan satu field pada tabel lain.

Relasi One to One Elequent ORM pada Laravel

Salah satu “contoh relasi one to one” yaitu setiap orang mempunyai satu identitas, ini akan kita bahas pada tutorial kali ini yaitu setiap mahasiswa mempunyai satu profil dan satu profil di miliki satu mahasiswa.

Skema Table MySQL untuk Laravel

Relasi One to One Elequent ORM pada Laravel

Gambar di atas merupakan skema tabel database one to one.

Langsung saja bagaimana “cara membuat dan menampilkan data relasi one to one pada laravel”.

Kita tidak memakai projek sebelumnya namun kita akan membuat projek baru.

Silahkan anda bikin projek baru dengan nama terserah anda dan konfigurasi databasenya.

Apabila belum mengeri cara nya baca :

Kita akan menggunakan database dengan kode SQL di bawah ini. Kode di bawah ini nantinya tidak hanya untuk relasi one to one saja, melainkan one to many dan many to many.

Langkah pertama yang kita lakukan yaitu bikin routing baru.

Membuat Routing

routes/web.php

Kita bikin dengan routing profil. Routing tersebut nanti di gunakan untuk memanggil fungsi / method pada Controller Universitas dengan index.

Membuat Controller

Setelah bikin route selesai maka selanjutny bikin sebuah controller , kita memberi nama controllernya sesuai dengan yang di definisikan pada route yaitu Universitas.

Perintah di atas akan membuat controller baru dengan nama Universitas. Ketika di buka file Universitas.php maka hanya ada sebauh nama class nya saja.

Maka selanjutnya kita memberikan kode untuk menampilkan data relasi one to one laravel.

Silahkan tambahkan kode controller Laravelnya dengan kode dibawah ini.

Untuk menampilkan data ada 2 cara pemganggilannya yaitu dari tabel utamanya dan tabel tamunya.

app/http/controller/Universitas.php

Perhatikan kode diatas, terdapat variable mahasiswa untuk menampilkan data dari tabel mahasiswas dan profil berasal dari tabel profils.

Kode diatas hanya menampilkan data dengan cara biasa.

Membuat Model

Setelah Controller sudah terbuat kemudian kita buat dua mode baru untuk profil dan mahasiswa.

Setelah 2 model sudah terbuat maka untuk menggunakan relasi kita ubah kodenya seperti kode dibawah ini.

App/Mahasiswa.php

Kode program pada model Mahasiswa di atas berfungsi untuk menampilkan data dari tabel mahasiswa. Di dalam model mahasiswa terdapat sebuah fungsi yang memanggil model dengan nama Profil dengan fungsi Relasi hasOne. Fungsi hasOne yaitu merelasikan dengan tabel profil dimana setiap profil memiliki satu mahasiswa saja.

Selanjutnya kita ubah pada model Profil.

App/Profil.php

Kode program di atas kita akan menampilkan data dari tabel profils, relasi seperti ini kita biasa memakainya dimana tabel yang kita pakai memiliki kolom tamu(foreign key).

Pada Model Profil terdapat method dengan nama mahasiswa. Method ini berisi fungsi relasi elequent BelongsTo ke model Mahasiswa yang bermakna setiap mahasiswa di miliki oleh profil.

BelongsTo ini sama saja dengan INNER JOIN pada Native relasi pada MySQL.

Membuat View

Setelah kita membuat controller pada laravel, selanjutnya kita akan membuat views baru dengan nama mahasiswa.blade.php

resource/views/mahasiswa.blade.php

Ketika kita mengakses data relasi dari tabel yang terdapat kunci tamu , format menampilkan data sebagai berikut.

Penerapan kode di atas yaitu

Ketika kita akses dari tabel yang tidak ada ada kunci tamunya/ parent tabel formatnya sama hanya saja di balik.

Karena saya menggunakan blade template , silahkan buat views satu lagi dengan nama layout.blade.php

resource/views/layout.blade.php

Apabila semua kode sudah benar silahkan lakukan pengunjian.

dan buka end point /profil

Relasi One to One Elequent ORM pada Laravel

dan lihat hasilnya maka akan keluar relasi data yang ada di dalam tabel database profil dan mahasiswa.

Sekian cara menampilkan data Relasi One to One pada Laravel.

Terima Kasih.

Baca juga :

Leave a Reply