Belajar Framework Laravel #33 |Relasi Many To Many Eloquent Pada Laravel
Irgo Adityawan
30 Mei 2023
Relasi many-to-many adalah salah satu jenis relasi yang sering digunakan dalam pengembangan aplikasi web. Dalam konteks Eloquent, ORM yang kuat di Laravel 8, relasi many-to-many menggambarkan hubungan di mana banyak entitas dalam satu model berkorelasi dengan banyak entitas dalam model lain. Dalam artikel ini, kita akan membahas cara mengimplementasikan relasi many-to-many dengan Eloquent pada Laravel 8.
Langkah 1: Persiapan Proyek Laravel
Pastikan Anda telah membuat proyek Laravel 8 atau Anda memiliki proyek yang siap. Anda juga harus memiliki tabel dan model yang akan digunakan dalam relasi many-to-many.
Langkah 2: Membuat Model dan Migrasi
Dalam contoh ini, kita akan menggunakan dua model: User
dan Role
. User
akan memiliki banyak peran, dan Role
akan dimiliki oleh banyak pengguna, sehingga kita akan mendefinisikan relasi many-to-many antara mereka. Mulailah dengan membuat migrasi untuk kedua model:
php artisan make:migration create_users_table
php artisan make:migration create_roles_table
Kemudian, definisikan struktur tabel dalam berkas migrasi masing-masing sesuai dengan kebutuhan proyek Anda.
Langkah 3: Membuat Tabel Pivot
Relasi many-to-many memerlukan tabel pivot yang digunakan untuk mengaitkan entitas dari model pertama dengan entitas dari model kedua. Anda perlu membuat migrasi untuk tabel pivot ini. Misalnya, jika kita ingin menghubungkan tabel users
dengan tabel roles
, kita dapat membuat migrasi seperti ini:
php artisan make:migration create_role_user_table
Dalam berkas migrasi pivot, Anda perlu menambahkan dua kolom untuk menghubungkan kedua tabel. Contoh:
public function up()
{
Schema::create('role_user', function (Blueprint $table) {
$table->id();
$table->unsignedBigInteger('user_id');
$table->unsignedBigInteger('role_id');
$table->timestamps();
});
}
Langkah 4: Menentukan Relasi Many-to-Many
Setelah Anda membuat model, migrasi, dan tabel pivot, Anda dapat menentukan relasi many-to-many di dalam model Eloquent. Buka model User
dan Role
dan tambahkan metode yang menggambarkan relasi tersebut.
Dalam model User
, tambahkan metode roles
:
public function roles()
{
return $this->belongsToMany(Role::class);
}
Dalam model Role
, tambahkan metode users
:
public function users()
{
return $this->belongsToMany(User::class);
}
Metode belongsToMany
di model User
dan Role
mengindikasikan bahwa banyak pengguna dapat memiliki banyak peran dan banyak peran dapat dimiliki oleh banyak pengguna.
Langkah 5: Membuat dan Menyimpan Data
Anda dapat membuat dan menyimpan data yang berkaitan dalam relasi many-to-many. Misalnya, untuk menetapkan peran untuk pengguna, Anda dapat melakukannya sebagai berikut:
$user = new User([
'name' => 'John Doe',
'email' => 'john@example.com',
'password' => bcrypt('password'),
]);
$user->save();
$role1 = new Role(['name' => 'Admin']);
$role2 = new Role(['name' => 'Editor']);
$user->roles()->attach([$role1->id, $role2->id]);
Langkah 6: Mengakses Data dalam Relasi
Anda dapat mengakses data dalam relasi many-to-many dengan mudah. Misalnya, untuk mendapatkan peran-peran pengguna, Anda dapat menggunakan kode berikut:
$user = User::find(1);
$roles = $user->roles;
foreach ($roles as $role) {
echo $role->name;
}
Anda juga dapat mengakses pengguna yang terkait dengan peran:
$role = Role::find(1);
$users = $role->users;
foreach ($users as $user) {
echo $user->name;
}
Kesimpulan
Relasi many-to-many adalah fitur Eloquent yang kuat di Laravel 8 yang memungkinkan Anda untuk menggambarkan hubungan antara banyak entitas dalam dua model. Ini sangat berguna dalam mengorganisasi dan mengelola data yang berkaitan. Dengan mengikuti langkah-langkah di atas, Anda dapat dengan mudah mengimplementasikan relasi many-to-many dalam proyek Laravel Anda.
Artikel Lainnya Dengan Kategori Terkait :
1. Belajar Framework Laravel #01 |Pengertian Framework
2. Belajar Framework Laravel #02 |Framework vs PHP Native
3. Belajar Framework Laravel #03 |Pengertian Dan Keunggulan Framework Laravel
4. Belajar Framework Laravel #04 |Pengertian MVC (Model – View – Controller)
5. Belajar Framework Laravel #05 |Instalasi XAMPP dan Cara Akses PHP dari CMD
6. Belajar Framework Laravel #06 |Cara Menginstall Composer
7. Belajar Framework Laravel #07 |Cara Menginstall Laravel 8
8. Belajar Framework Laravel #08 |Cara Menjalankan Laravel 8
9. Belajar Framework Laravel #09 |Cara Membuat Route di Laravel 8
10. Belajar Framework Laravel #10 |Cara Membuat View di Laravel 8
11. Belajar Framework Laravel #11 |Cara Mengirim Data ke View Laravel 8
12. Belajar Framework Laravel #12 |Membuat Controller Pada Laravel 8
13. Belajar Framework Laravel #13 |Passing Data Controller Ke View Laravel
14. Belajar Framework Laravel #14 |Request Data Pada Laravel
15. Belajar Framework Laravel #15 |Maintenance Mode Pada Laravel
16. Belajar Framework Laravel #16 |Konfigurasi Dasar Pada Laravel
17. Belajar Framework Laravel #17 |Sistem Template Blade Laravel
19. Belajar Framework Laravel #19 |CRUD Menginput Data Dengan menggunakan query builder pada laravel
20. Belajar Framework Laravel #20 |CRUD Update Data Dengan menggunakan query builder pada laravel
21. Belajar Framework Laravel #21 |CRUD Update Data Dengan menggunakan query builder pada laravel
22. Belajar Framework Laravel #22 |Seeding dan Faker Pada Laravel
23. Belajar Framework Laravel #23 |Membuat Pagination Pada Laravel
24. Belajar Framework Laravel #24 |Membuat Pencarian Pada Laravel
25. Belajar Framework Laravel #25 |Menggunakan Bootstrap Di Laravel
26. Belajar Framework Laravel #26 |Membuat Form Validasi Pada Laravel
27. Belajar Framework Laravel #27 |Migration Laravel
28. Belajar Framework Laravel #28 |CRUD Eloquent Laravel pada laravel 8
29. Belajar Framework Laravel #29 |CRUD Laravel Menggunakan Eloquent
30. Belajar Framework Laravel #30 |Soft Deletes pada laravel
31. Belajar Framework Laravel #31 |Relasi One To One Eloquent pada laravel
32. Belajar Framework Laravel #32 |Relasi One To Many Eloquent Pada Laravel
33. Belajar Framework Laravel #33 |Relasi Many To Many Eloquent Pada Laravel
34. Belajar Framework Laravel #34 |Membuat Login dan Register Menggunakan Laravel 8
35. Belajar Framework Laravel #35 |Membuat Reset Password Laravel Via Email
36. Belajar Framework Laravel #36 |Encrypt dan Decrypt pada Laravel
37. Belajar Framework Laravel #37 |Hashing Pada Laravel
38. Belajar Framework Laravel #38 |CRUD Membuat Upload file pada laravel 8
39. Belajar Framework Laravel #39 |CRUD Hapus File Menggunakan Laravel
40. Belajar Framework Laravel #40 |Session pada laravel
41. Belajar Framework Laravel #41 |Notifikasi dengan session laravel
42. Belajar Framework Laravel #42 |Error Handling Laravel
43. Belajar Framework Laravel #43 |Kirim Email Dengan Laravel
44. Belajar Framework Laravel #44 |Verifikasi Email User Laravel
45. Belajar Framework Laravel #45 |Membuat Laporan PDF Dengan DOMPDF Laravel
46. Belajar Framework Laravel #46 |Export Excel Laravel
47. Belajar Framework Laravel #47 |Import Excel Laravel
48. Belajar Framework Laravel #48 |Multi Bahasa Localization
49. Belajar Framework Laravel #49 |Multi Bahasa Localization Laravel Dengan URL
Ahmad Dika Zulfahmi - 18 Februari 2025
Jungler Tank Bisa Kembali? Update yang Bisa Membawa Jungler Tank ke Meta Lagi
Ahmad Dika Zulfahmi - 06 Februari 2025
Setting Sensitivitas Auto Headshot Free Fire Terbaik
Ahmad Dika Zulfahmi - 03 Februari 2025
Flash Sale Minaplay! Top Up Diamond Free Fire Murah & Cepat!