Tutorial Laravel Livewire - #5 - Membuat Relasi Antar Table Dengan Laravel

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat relasi antar tabel menggunakan eloquent relationship yang telah disedikan oleh laravel.

Rafi Taufiqurrahman
Dipublish 09/07/2024

Pendahuluan

Pada artikel sebelumnya kita telah membuat schema database sesuai dengan gambar yang kita buat, selanjutnya pada artikel ini kita akan belajar bagaimana cara merelasikan antar tabel menggunakan Eloquent Relationships yang telah disediakan oleh Laravel.

Membuat Relasi Model Product

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

Product.php
<?php

namespace App\Models;

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

class Product extends Model
{
    use HasFactory;

    /**
     * fillable
     */
    protected $fillable = ['name', 'slug', 'category_id', 'image', 'quantity', 'price'];
    
    /**
     * relation to categories table
     */
    public function category()
    {
        return $this->belongsTo(Product::class);
    }
}

Pada kode diatas kita menambahkan relasi dari tabel products ke tabel categories yang kita beri nama dengan category, disini jenis relasi yang kita gunakan adalah belongsTo yang artinya 1 product bisa memiliki berbagai macam category.

Membuat Relasi Model Cart

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

Cart.php
<?php

namespace App\Models;

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

class Cart extends Model
{
    use HasFactory;

    /**
     * fillable
     */
    protected $fillable = ['user_id', 'product_id', 'quantity', 'price'];

    /**
     * relation to users table
     */
    public function user()
    {
        return $this->belongsTo(User::class);
    }

    /**
     * relation to products table
     */
    public function product()
    {
        return $this->belongsTo(Product::class);
    }
}

Pada kode diatas kita menambahkan beberapa relasi di model carts, diantarnya sebagai berikut :

  1. relasi dari tabel carts ke tabel users yang kita beri nama dengan user, disini jenis relasi yang digunakan adalah belongsTo.
  2. relasi dari tabel carts ke tabel products yang kita beri nama dengan product, disini jenis relasi yang digunakan adalah belongsTo.

Membuat Relasi Model Transaction

Pada tahap ini kita akan melanjutkan untuk membuat sebuah relasi untuk tabel transactions, silahkan teman - teman buka file app/models/Transaction, kemudian masukan kode berikut ini :

Transaction.php
<?php

namespace App\Models;

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

class Transaction extends Model
{
    use HasFactory;

    /**
     * fillable
     */
    protected $fillable = ['invoice', 'user_id', 'grand_total', 'cash', 'change'];

    /**
     * relation to users table
     */
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

Pada kode diatas kita menambahkan relasi dari tabel transactions ke tabel users yang kita beri nama dengan user, disini jenis relasi yang kita gunakan adalah belongsTo.

Membuat Relasi Model TransactionDetail

Tahap ini merupakan tahap terakhir dalam pembuatan relasi antar tabel yang kita miliki, silahkan teman - teman buka file app/Models/TransactionDetail.php, kemudian masukan kode berikut ini :

TransactionDetail.php
<?php

namespace App\Models;

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

class TransactionDetail extends Model
{
    use HasFactory;

    /**
     * fillable
     */
    protected $fillable = ['transaction_id', 'product_id', 'quantity', 'price'];

    /**
     * relation to transactions table
    */
    public function transaction()
    {
        return $this->belongsTo(Transaction::class);
    }

    /**
     * relation to products table
     */
    public function product()
    {
        return $this->belongsTo(Product::class);
    }
}

Pada kode diatas kita menambahkan beberapa relasi di model carts, diantarnya sebagai berikut :

  1. relasi dari tabel transaction_details ke tabel transaction yang kita beri nama dengan transaction, disini jenis relasi yang digunakan adalah belongsTo.
  2. relasi dari tabel transaction_details ke tabel products yang kita beri nama dengan product, disini jenis relasi yang digunakan adalah belongsTo.

Penutup

Pada artikel kali ini kita telah berhasil menyelesaikan pembuatan relasi antar tabel menggunakan eloquent relationships, berikutnya kita akan lanjutkan untuk berkenalan dan memanfaat eloquent accessor.

Artikel Lainnya

Beberapa artikel rekomendasi lainnya untuk menambah pengetahuan.

1
Tutorial Laravel Rest API - #2 - Installasi Laravel Sanctum
Artikel ini merupakan series dari Tutorial Authentication Dengan Laravel Sanctum dan Unit Testing, disini kita akan mulai melakukan installasi laravel sanctum dan implementasi api token pada model user.
2
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.
3
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.
4
Tutorial Laravel Livewire - #11 - Membuat Module Dashboard Dengan Livewire
Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah module dashboard dengan livewire.
5
Tutorial Laravel Livewire - #4 - Membuat Schema Database Dengan Laravel
Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah schema database yang nantinya akan kita gunakan pada study case kali ini dan kita akan memanfaatkan model dan migration dari laravel.
6
Tutorial Laravel Rest API - #1 - Installasi Laravel Dengan Composer
Artikel ini merupakan series dari Tutorial Authentication Dengan Laravel Sanctum dan Unit Testing, disini kita akan mulai melakukan installasi project laravel kita dari awal menggunakan composer.

JurnalKoding

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

© 2025 JurnalKoding, Inc. All rights reserved.