Pada tutorial kali ini saya akan memberikan materi tentang laravel eloquent yaitu Cara Setup Relasi One To Many DI Eloquent Laravel, sedikit mengingatkan relasi one to many adalah sebuah relasi antar table dengan kondisi dimana satu table parent bisa memiliki data lebih dari satu di table child misalkan 1 kategori bisa memiliki banyak produk.
Di laravel untuk menggunakan relasi ini di database kita harus menstupnya dahulu sebelum di gunakan, bialah langsung saaja saya beri tahu caranya.
Saya memiliki migration seperti ini :
table category :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateTableCategory extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('category', function (Blueprint $table) { $table->increments('id'); $table->string('category_name'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('category'); } } |
Lalu saya memiliki table detail_category :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
<?php use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class CreateTableDetailCategory extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('detail_category', function (Blueprint $table) { $table->increments('id'); $table->integer('id_category')->unsigned(); $table->string('category_name_detail'); $table->foreign('id_category')->references('id')->on('category')->onDelete('cascade'); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('detail_category'); } } |
JIka kita lihat ke dua table di atas , dimana table category adalah parent dari table detail_category dan category memilii relasi One to Many terhadap table detail_category.
Untuk mensetupnya kita ubah pada bagian model nya yaitu Category Model lalu kita arahkan ke detail_category seperti ini :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Eloquent; use App\Product; class Category extends Eloquent { protected $table = "category"; public function detail_categorize() { return $this->hasMany('Detail_category::class'); //arahkan ke table child detail_category } } |
Jika di lihat intinya kita harus membuat sebuah method yang isinya adalah setup dari table parent memiliki one to many ke table child.
Baiklah itu saja untuk kali ini tentang Cara Setup Relasi One To Many DI Eloquent Laravel, sampai bertemu pada artikel selanjutnya.