Tutorial Laravel 13 untuk Pemula #3 – Membuat Model, Migration, dan Controller pada Laravel 13

Belajar Laravel 13 dan Tailwind CSS dari dasar hingga tingkat lanjut dengan tutorial lengkap dan mudah dipahami. Laravel 12 adalah framework PHP yang powerful untuk membangun aplikasi web modern, sementara Tailwind CSS adalah framework CSS yang fleksibel dan efisien untuk desain antarmuka yang responsif.

✅ Telah dilihat 245 kali

Rating: 5.00 ⭐

... 17 March 2026, 23:26

Model, Migration, dan Controller


Pada tahap awal ini, kita akan membuat tiga komponen penting dalam Laravel, yaitu Model, Migration, dan Controller. Laravel sudah menyediakan cara cepat untuk membuat ketiganya sekaligus menggunakan satu perintah.

Silakan jalankan perintah berikut di terminal:

php artisan make:model Image -mcr

Perintah ini akan secara otomatis membuat tiga file utama yang saling terhubung dalam proses pengembangan aplikasi.

Model akan dibuat di dalam folder app Models, migration akan dibuat di dalam database migrations, dan controller akan dibuat di dalam app Http Controllers.

Dengan satu perintah ini, kita sudah menyiapkan fondasi untuk membuat fitur CRUD secara lengkap.


Migration


Selanjutnya, kita akan mengatur struktur tabel yang akan digunakan untuk menyimpan data gambar.

Silakan buka file migration yang sudah dibuat, biasanya berada di dalam folder database migrations, dengan nama yang diawali timestamp dan diakhiri dengan create_images_table.

Kemudian ubah isi function up menjadi seperti berikut:

public function up()
{
    Schema::create('images', function (Blueprint $table) {
        $table->id();
        $table->string('title');
        $table->string('image');
        $table->timestamps();
    });
}

Melalui kode ini, kita mendefinisikan struktur tabel bernama images.

Tabel ini memiliki kolom id sebagai primary key, kemudian title untuk menyimpan judul gambar, dan image untuk menyimpan nama file atau path gambar. Selain itu, Laravel juga secara otomatis menambahkan created_at dan updated_at untuk mencatat waktu pembuatan dan perubahan data.

Setelah selesai, jalankan perintah migrate:

php artisan migrate

Perintah ini akan mengeksekusi semua file migration dan membuat tabel di database sesuai dengan struktur yang sudah kita definisikan.


Model


Sekarang kita masuk ke bagian model. Model berfungsi sebagai representasi dari tabel di database, sekaligus menjadi tempat kita berinteraksi dengan data menggunakan Eloquent ORM.

Silakan buka file Image.php yang ada di dalam folder app Models, kemudian ubah menjadi seperti berikut:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Attributes\Fillable;

#[Fillable(['title', 'image'])]
class Image extends Model
{
}

Di Laravel versi terbaru, termasuk Laravel 13, terdapat pendekatan baru yang lebih modern dalam mendefinisikan atribut model, yaitu menggunakan PHP Attribute.

Jika pada versi sebelumnya kita menggunakan properti protected fillable, sekarang Laravel menyediakan cara yang lebih ringkas dengan menggunakan anotasi di atas class.

Fillable berfungsi untuk menentukan field mana saja yang boleh diisi secara massal. Ini penting untuk menjaga keamanan aplikasi, terutama ketika kita menerima input dari user.

Sebagai contoh, ketika kita menyimpan data menggunakan method create, Laravel hanya akan memproses field yang sudah didefinisikan di dalam Fillable.

Pendekatan ini membuat kode menjadi lebih bersih, lebih mudah dibaca, dan mengikuti perkembangan standar PHP modern.


Perlu juga dipahami bahwa Laravel masih mendukung cara lama menggunakan properti fillable, namun untuk project baru sangat disarankan menggunakan pendekatan attribute seperti ini agar kode lebih konsisten ke depan.


Sebagai tambahan, Laravel juga menyediakan trait HasFactory yang biasanya digunakan untuk membuat data dummy saat testing atau seeding. Meskipun belum kita gunakan sekarang, trait ini sangat berguna ketika aplikasi mulai berkembang.


Pada materi berikutnya, kita akan mulai masuk ke controller, khususnya membuat fungsi index untuk menampilkan data image ke halaman, lengkap dengan fitur dasar seperti edit dan delete.

Daftar eBook