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.

Series Artikel

Berikut ini daftar series artikel dari Tutorial Point of Sales Laravel, Livewire, Alpine.js & Tailwind Css

1
Tutorial Laravel Livewire - #1 - Project Overview

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan bahasa teknologi apa saja yang kita gunakan dan scope dari project yang akan kita bangun.

2
Tutorial Laravel Livewire - #2 - Installasi Project Laravel

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan mulai melakukan installasi project laravel kita dari awal menggunakan composer.

3
Tutorial Laravel Livewire - #3 - Installasi Laravel Breeze & Livewire

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan melakukan installasi laravel breeze dan livewire sebagai starter-kit kita.

4
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.

5
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.

6
Tutorial Laravel Livewire - #6 - Memanfaatkan Salah Satu Magic Laravel Yaitu Eloquent Accessor

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan mengenal salah satu magic laravel yang sangat powerfull yaitu laravel accessor.

7
Tutorial Laravel Livewire - #7 - Membuat Reusable Component Dengan Laravel

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita membuat sebuah reusable component menggunakan laravel.

8
Tutorial Laravel Livewire - #8 - Membuat Module Category Dengan Livewire

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah module category dengan livewire.

9
Tutorial Laravel Livewire - #9 - Membuat Module Product Dengan Livewire

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah module product dengan livewire.

10
Tutorial Laravel Livewire - #10 - Membuat Module POS Dengan Livewire

Artikel ini merupakan series dari Tutorial Laravel Livewire Study Case Point Of Sales, disini kita akan membuat sebuah module pos dengan livewire.

11
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.

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.