Penggunaan Relasi Antar Tabel pada Laravel

Konten [Tampil]

 


Dalam Laravel, relasi digunakan untuk menghubungkan dua atau lebih model dan memfasilitasi akses data terkait di antara mereka. Ada beberapa jenis relasi yang dapat Anda gunakan dalam Laravel, dan ini sangat bermanfaat ketika Anda bekerja dengan basis data yang terstruktur.


Berikut adalah beberapa jenis relasi yang umum digunakan:


One to One Relationship:

Relasi satu-ke-satu digunakan ketika setiap entitas dalam model pertama memiliki satu entitas terkait dalam model kedua, dan sebaliknya. Contoh: relasi antara pengguna (users) dan profil (profiles).


php

Copy code

// Di model User

public function profile()

{

    return $this->hasOne(Profile::class);

}


// Di model Profile

public function user()

{

    return $this->belongsTo(User::class);

}

One to Many Relationship:

Relasi satu-ke-banyak digunakan ketika setiap entitas dalam model pertama memiliki banyak entitas terkait dalam model kedua. Contoh: relasi antara penulis (authors) dan buku (books).


php

Copy code

// Di model Author

public function books()

{

    return $this->hasMany(Book::class);

}


// Di model Book

public function author()

{

    return $this->belongsTo(Author::class);

}

Many to Many Relationship:

Relasi banyak-ke-banyak digunakan ketika setiap entitas dalam model pertama dapat berhubungan dengan banyak entitas dalam model kedua dan sebaliknya. Contoh: relasi antara pengguna (users) dan peran (roles).


php

Copy code

// Di model User

public function roles()

{

    return $this->belongsToMany(Role::class);

}


// Di model Role

public function users()

{

    return $this->belongsToMany(User::class);

}

Has Many Through Relationship:

Relasi Has Many Through digunakan untuk mengakses data melalui model yang terhubung. Contoh: relasi antara negara (countries), provinsi (states), dan kota (cities).


php

Copy code

// Di model Country

public function cities()

{

    return $this->hasManyThrough(City::class, State::class);

}

Polymorphic Relationship:

Relasi polimorfik memungkinkan model untuk berhubungan dengan banyak model pada satu kolom. Contoh: relasi antara komentar (comments) dan berita (posts) atau video.


php

Copy code

// Di model Comment

public function commentable()

{

    return $this->morphTo();

}


// Di model Post

public function comments()

{

    return $this->morphMany(Comment::class, 'commentable');

}


// Di model Video

public function comments()

{

    return $this->morphMany(Comment::class, 'commentable');

}

Previous Post Next Post