Hubungi Kami

Solokan Pakis Jaya Karawang

thank you

Memahami Tentang Model di Laravel 11

blog

Model dalam Laravel adalah representasi dari tabel dalam database. Mereka memungkinkan Anda untuk berinteraksi dengan data dalam database menggunakan objek PHP, yang disebut model Eloquent. Model Eloquent memungkinkan Anda untuk melakukan berbagai operasi terhadap data, seperti menyimpan, mengambil, memperbarui, dan menghapus data dengan cara yang mudah dan terstruktur.

Penjelasan Detail Model Artikel

Mari kita perinci setiap bagian dari model Artikel yang Anda berikan:

  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;: Mendefinisikan namespace dari model. Dalam Laravel, model biasanya disimpan di dalam direktori app/Models.
    • use Illuminate\Database\Eloquent\Factories\HasFactory;: Menggunakan trait HasFactory, yang digunakan untuk menyediakan method factory() yang dapat digunakan untuk membuat data uji (dummy data) atau data dalam testing.
  2. Mendefinisikan Model Artikel:

    class Artikel extends Model { use HasFactory; // ... }
    • class Artikel extends Model: Mendeklarasikan model Artikel yang merupakan turunan dari kelas Model dari Eloquent. Ini menghubungkan model dengan tabel artikels (secara default nama tabel berdasarkan konvensi Laravel, namun bisa disesuaikan jika diperlukan).
  3. Properti $fillable:

    protected $fillable = [ 'title', 'body', 'image', 'slug', ];
    • $fillable: Mendefinisikan kolom-kolom yang diizinkan untuk diisi secara massal (mass assignment). Kolom-kolom yang terdaftar di sini dapat diisi menggunakan metode create() atau update() tanpa menyebabkan pengecualian MassAssignmentException.
  4. Relasi category():

    public function category() { return $this->belongsToMany(Category::class); }
    • category(): Mendefinisikan relasi antara model Artikel dan Category. Fungsi ini menggunakan metode belongsToMany yang menunjukkan bahwa setiap Artikel dapat terhubung dengan banyak Category dan sebaliknya. Ini mengimplikasikan adanya tabel pivot (biasanya artikel_category) yang menghubungkan kedua tabel tersebut.
  5. Accessor getPictureAttribute():

    
     
    public function getPictureAttribute() { return asset('storage/' . $this->image); }
    • getPictureAttribute(): Ini adalah sebuah accessor dalam Eloquent yang memungkinkan Anda untuk memanipulasi nilai kolom image sebelum dikembalikan kepada pengguna. Di sini, asset('storage/' . $this->image) digunakan untuk menghasilkan URL lengkap gambar yang terkait dengan artikel.

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 category, serta menyediakan aksesors untuk memanipulasi nilai sebelum ditampilkan. Model Eloquent Laravel memudahkan pengembang untuk mengelola dan berinteraksi dengan data dalam database secara efisien dan terstruktur.