Penawaran Terbatas! Dapatkan Layanan Website Profesional dengan SEO Gratis untuk Waktu Terbatas!
Blog Images
  • 2 months ago

Memahami Tentang Model di Laravel 11

Berikut adalah penjelasan terperinci tentang model Artikel dalam Laravel, dengan fokus pada setiap bagian dari model tersebut:

1. Namespace dan Penggunaan Trait HasFactory

namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Artikel extends Model { use HasFactory; // ... }

  • namespace App\Models;: Ini mendefinisikan namespace dari model, yang biasanya disimpan dalam direktori app/Models dalam aplikasi Laravel.

  • use Illuminate\Database\Eloquent\Factories\HasFactory;: Menggunakan trait HasFactory, yang menyediakan method factory() untuk membuat data uji (dummy data) dalam testing atau seed data.

2. Mendefinisikan Model Artikel

class Artikel extends Model { use HasFactory; // ... }

  • class Artikel extends Model: Ini mendeklarasikan model Artikel yang merupakan turunan dari kelas Model Eloquent. Dengan ini, model terhubung dengan tabel artikels, yang secara default mengikuti konvensi penamaan tabel di Laravel. Anda dapat mengubah nama tabel jika diperlukan dengan mendeklarasikan properti $table.

3. Properti $fillable

protected $fillable = [ 'title', 'body', 'image', 'slug', ];

  • $fillable: Properti ini mendefinisikan kolom-kolom yang diizinkan untuk diisi secara massal (mass assignment). Hanya kolom yang terdaftar di sini yang dapat diisi menggunakan metode create() atau update() tanpa menimbulkan pengecualian MassAssignmentException. Ini membantu melindungi model dari serangan mass assignment.

4. Relasi category()

public function category() { return $this->belongsToMany(Category::class); }

  • category(): Fungsi ini mendefinisikan relasi antara model Artikel dan Category. Dengan menggunakan metode belongsToMany, ini menunjukkan bahwa setiap Artikel dapat terhubung dengan banyak Category, dan sebaliknya. Relasi ini mengimplikasikan adanya tabel pivot, biasanya dinamakan artikel_category, yang menghubungkan kedua tabel tersebut.

5. Accessor getPictureAttribute()

public function getPictureAttribute() { return asset('storage/' . $this->image); }

  • getPictureAttribute(): Ini adalah accessor yang memungkinkan Anda untuk memanipulasi nilai kolom image sebelum dikembalikan kepada pengguna. Dalam contoh ini, asset('storage/' . $this->image) digunakan untuk menghasilkan URL lengkap dari gambar yang terkait dengan artikel. Ini membantu memudahkan pengambilan gambar secara langsung dari penyimpanan aplikasi.

Kesimpulan

Model Artikel dalam contoh ini menyediakan representasi objek untuk entitas artikel dalam aplikasi Laravel. Melalui model ini, Anda dapat melakukan operasi CRUD (Create, Read, Update, Delete) pada data artikel, menentukan relasi antara artikel dan kategori, serta menyediakan accessors untuk memanipulasi nilai sebelum ditampilkan.

Model Eloquent Laravel memudahkan pengembang untuk mengelola dan berinteraksi dengan data dalam database secara efisien dan terstruktur, serta meningkatkan produktivitas dan keamanan aplikasi.