Hallo teman-teman ONPHPID semua, pada tutorial sebelumnya kita sudah belajar tentang Sistem Templating Pada Laravel 5.3. Masih ingat kan kita sudah membuat layout yang bisa dipakai untuk semua halaman aplikasi web kita. Kali ini ONPHPID akan mengajak teman-teman untuk belajar tentang relasi tabel pada Laravel. Seperti yang teman-teman ketahui, ketika kita membuat Aplikasi yang berhubungan dengan Database, kita tidak bisa lepas dengan yang namanya relasi atau hubungan antar tabel. Macam-macam relasi yang biasa kita kenal yaitu one to one, one to many atau many to one dan many to many. Namun pada framework Laravel setidaknya ada tujuh macam relasi, kita akan membahasnya satu persatu nantinya.
# One To One Relationships
Hubungan relasi one to one atau satu ke satu merupakan relasi yang sangat mendasar pada desain suatu database. Kita misalkan saja satu User memiliki satu Identitas(profile) begitu juga sebaliknya, satu Identitas hanya dimiliki satu User. Agar lebih jelas penggunaannya, sebaiknya kita praktekan saja ya?
Sebelumnya seperti biasa kita buka dulu project yang pernah kita buat pada tutorial sebelumnya, jika belum membacanya bisa membacanya lagi agar tidak ketinggalan. Jika sudah mari kita buat satu buah Model beserta file migrationsnya, masih ingat kan cara membuatnya? ok, jika lupa silakan buka command prompt-nya dan ketikan php artisan make:model Profile -m
karena kita akan membuat table profiles yang berelasi dengan table users, lalu buka dan kita ubah menjadi seperti berikut :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// code lain public function up() { Schema::create('profiles', function (Blueprint $table) { $table->increments('id'); $table->string('nama', 100); $table->enum('jenis_kelamin', ['laki-laki', 'perempuan']); $table->string('alamat'); $table->char('no_telp', 20); $table->integer('user_id')->unsigned(); $table->timestamps(); $table->foreign('user_id') ->references('id') ->on('users') ->onUpdate('cascade') ->onDelete('cascade'); }); } // code lain |
jika sudah, mari kita buat file seeder untuk mengisi datanya. ketikan php artisan make:seed ProfileSeeder
pada command prompt lalu isi dengan data seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// code lain public function run() { \App\Profile::insert([ [ 'nama' => 'onphpid', 'jenis_kelamin' => 'laki-laki', 'alamat' => 'magetan', 'no_telp' => '085728778877', 'user_id' => '1' ], [ 'nama' => 'john doe', 'jenis_kelamin' => 'laki-laki', 'alamat' => 'solo', 'no_telp' => '085728778899', 'user_id' => '2' ] ]); } // code lain |
kemudian kita buat seeder untuk mengisi table users karena datanya maih kosong. Silakan ketikan php artisan make:seed UserTableSeeder
lalu isi seperti di bawah ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
// code lain public function run() { \App\User::insert([ [ 'name' => 'onphpid', 'email' => 'onphpid@gmail.com', 'password' => \Hash::make('onphpid') ], [ 'name' => 'john', 'email' => 'john@gmail.com', 'password' => \Hash::make('john') ] ]); } // code lain |
Karena kita kemarin sudah pernah melakukan migrate, maka kita perlu merollback dulu semua tablenya agar kita dapat melakukan migrate lagi. Silakan ketikan php artisan migrate:rollback
di command prompt, jika berhasil maka akan seperti ini :
setelah itu kita dapat melakukan migrate lagi dan mengisi table dengan mengetikan php artisan migrate kemudian php artisan db:seed
. Tapi jangan lupa untuk merubah file DatabaseSeeder.php
menjadi seperti ini :
1 2 3 4 5 6 7 8 |
// code lain public function run() { $this->call(UserTableSeeder::class); $this->call(KendaraansTableSeeder::class); $this->call(ProfileSeeder::class); } // code lain |
jika berhasil kurang lebih akan seperti gambar di bawah ini :
Kita sudah berhasil membuat satu Model Profile dan mengisi table users dan table profiles. Pada tutorial selanjutnya kita akan mengimplementasikan apa yang sudah kita buat di atas. Jadi jangan sampai ketinggalan dan ikuti terus step by stepnya ya.
Baca Juga : Sistem Templating Pada Laravel 5.3 untuk pemula
Sekian dulu tutorial Belajar Laravel : Memahami One to One Relationships Pada Laravel 5.3 untuk pemula part-1. Jika ada hal yang kurang jelas atau ingin ditanyakan dapat kalian sampaikan melalui kolom komentar. JANGAN LUPA like FANSPAGE ONPHPID untuk update informasi dan Subscribe Channel ONPHPID Tutorial. Terima Kasih dan Selamat Belajar…