Study
Laravel

Eloquent Relationship

Penjelasan

Eloquent mendukung relasi antar tabel lewat method khusus di dalam model: hasMany() (satu record punya banyak record terkait, mis. satu kategori punya banyak produk) dan belongsTo() (kebalikannya, satu produk dimiliki satu kategori). Setelah didefinisikan, relasi bisa diakses seperti property biasa.

Contoh Konsep

<?php

class Kategori extends Model
{
    public function produk()
    {
        return $this->hasMany(Produk::class);
    }
}

class Produk extends Model
{
    public function kategori()
    {
        return $this->belongsTo(Kategori::class);
    }
}

// Pemakaian:
$kategori = Kategori::find(1);
foreach ($kategori->produk as $item) {
    echo $item->nama;
}

$produk = Produk::find(1);
echo $produk->kategori->nama;

Praktikum

Buat relasi: model Penulis punya method artikel() (hasMany ke Artikel), dan model Artikel punya method penulis() (belongsTo ke Penulis). Tulis contoh pemakaian yang menampilkan nama penulis dari satu artikel.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

belongsTo() membutuhkan kolom foreign key di tabel model itu sendiri (mis. tabel produk butuh kolom kategori_id) — Eloquent menebak nama kolom ini otomatis dari nama method relasinya, tapi bisa ditentukan manual sebagai argumen kedua kalau nama kolomnya beda.