Tutorial Inertia Roles & Permissions - #6 - Membuat Relasi Antar Tabel Menggunakan Laravel Eloquent Relationship

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat relasi antar tabel menggunakan laravel eloquent relationship.

Rafi Taufiqurrahman
Dipublish 13/07/2024

Pendahuluan

Pada artikel sebelumnya kita telah membuat model dan migration menggunakan laravel, selanjutnya pada artikel ini kita akan belajar bagaimana cara merelasikan antar tabel menggunakan Eloquent Relationships yang telah disediakan oleh Laravel.

Membuat Relasi Model Post

Silahkan teman - teman buka file app/Models/Post.php, kemudian tambahkan kode seperti berikut ini :

Post.php
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;

    protected $fillable = ['user_id', 'title', 'content'];

    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

Pada kode diatas kita menambahkan relasi dari tabel posts ke tabel users yang kita beri nama dengan user, disini jenis relasi yang kita gunakan adalah belongsTo yang artinya 1 posts hanya bisa dimiliki oleh satu users.

Membuat Relasi Model User

Setelah berhasil membuat relasi dari tabel posts ke tabel users, kita akan lanjutkan untuk membuat relasi untuk tabel users, silahkan teman - teman buka file app/Models/User.php, kemudian tambahkan kode seperti dibawah ini :

User.php
<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable
{
    use HasFactory, Notifiable, HasRoles;

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'email',
        'password',
    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * Get the attributes that should be cast.
     *
     * @return array<string, string>
     */
    protected function casts(): array
    {
        return [
            'email_verified_at' => 'datetime',
            'password' => 'hashed',
        ];
    }

    /**
     * getUserPermissions
     *
     * @return void
     */
    public function getUserPermissions()
    {
        return $this->getAllPermissions()->mapWithKeys(fn($permission) => [$permission['name'] => true]);
    }

    /**
     * isSuperAdmin
     *
     * @return void
     */
    public function isSuperAdmin()
    {
        return $this->hasRole('super-admin');
    }

    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}

Pada kode diatas kita menambahkan relasi dari tabel users ke tabel posts yang kita beri nama dengan posts, disini jenis relasi yang kita gunakan adalah hasMany yang artinya 1 users bisa memiliki banyak posts.

Penutup

Pada artikel kali ini kita telah berhasil menyelesaikan pembuatan relasi antar tabel menggunakan eloquent relationships, berikutnya kita akan lanjutkan untuk melakukan konfigurasi share data global menggunakan inertia.

Series Artikel

Berikut ini daftar series artikel dari Tutorial Laravel Inertia Roles & Permissions

1
Tutorial Inertia Roles & Permissions - #1 - Project Overview

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan bahasa teknologi apa saja yang kita gunakan dan scope dari project yang akan kita bangun.

2
Tutorial Inertia Roles & Permissions - #2 - Installasi Project

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan mulai melakukan installasi project laravel kita dari awal menggunakan composer.

3
Tutorial Inertia Roles & Permissions - #3 - Installasi Laravel Breeze & Inertia

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan melakukan installasi laravel breeze dan inertia sebagai starter-kit kita.

4
Tutorial Inertia Roles & Permissions - #4 - Installasi Laravel Spatie

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan melakukan installasi laravel spatie untuk menghandle roles & permissions.

5
Tutorial Inertia Roles & Permissions - #5 - Membuat Model, Migration, Faker Dan Seeder Laravel

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah model, migration, faker dan seeder yang akan kita gunakan di dalam project kita.

6
Tutorial Inertia Roles & Permissions - #6 - Membuat Relasi Antar Tabel Menggunakan Laravel Eloquent Relationship

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat relasi antar tabel menggunakan laravel eloquent relationship.

7
Tutorial Inertia Roles & Permissions - #7 - Membuat Share Data Global Inertia

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan belajar membuat sebuah data yang dapat diakses di semua halaman menggunakan inertia.

8
Tutorial Inertia Roles & Permissions - #8 - Membuat Reusable Component Dengan React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan belajar membuat sebuah reusable component menggunakan react.

9
Tutorial Inertia Roles & Permissions - #9 - Membuat Utils Permissions Dengan Inertia React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan belajar membuat sebuah utils untuk menghandle permissions yang kita miliki.

10
Tutorial Inertia Roles & Permissions - #10 - Membuat Module Dashboard Dengan Inertia React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module dashboard dengan inertia react.

11
Tutorial Inertia Roles & Permissions - #11 - Membuat Module Post Dengan Inertia React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module post dengan inertia react.

12
Tutorial Inertia Roles & Permissions - #12 - Membuat Module Permission Dengan Inertia React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module permission dengan inertia react.

13
Tutorial Inertia Roles & Permissions - #13 - Membuat Module Role Dengan Inertia React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module role dengan inertia react.

14
Tutorial Inertia Roles & Permissions - #14 - Membuat Module User Dengan Inertia React

Artikel ini merupakan series dari Tutorial Laravel Inertia Roles & Permissions, disini kita akan membuat sebuah module user dengan inertia react.

JurnalKoding

Mulai asah skill dengan berbagai macam teknologi - teknologi terbaru seperti Laravel, React, Vue, Inertia, Tailwind CSS, dan masih banyak lagi.

© 2024 JurnalKoding, Inc. All rights reserved.