¶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 :
- relasi dari tabel carts ke tabel users yang kita beri nama dengan
user
, disini jenis relasi yang digunakan adalah belongsTo
.
- 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 :
- relasi dari tabel transaction_details ke tabel transaction yang kita beri nama dengan
transaction
, disini jenis relasi yang digunakan adalah belongsTo
.
- 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.