Membangun CRUD Article dengan Laravel & Filament Admin Panel
Laravel adalah salah satu framework PHP paling populer untuk membangun aplikasi modern. Dengan tambahan Filament, kita bisa membuat admin panel dan CRUD dengan cepat tanpa perlu coding panjang.
Di artikel ini kita akan membangun sebuah project Laravel dari nol, lalu membuat CRUD untuk Article menggunakan Filament.
1. Membuat Proyek Laravel Baru
Jalankan perintah berikut:
composer create-project --prefer-dist laravel/laravel websiteCatatan penting:
websitedi akhir perintah adalah nama folder project.- Jika Anda menggantinya, misalnya
blog, maka folder project akan bernamablog.
Setelah selesai, masuk ke folder project:
cd website2. Mengatur Database
Secara default, Laravel menggunakan SQLite. Tapi kita bisa menggantinya ke MySQL dengan mengedit file .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=website
DB_USERNAME=root
DB_PASSWORD=123Lalu jalankan migrasi awal:
php artisan migrate3. Instalasi Filament
Tambahkan package Filament:
composer require filament/filamentLalu install panel:
php artisan filament:install --panelsBuat user untuk login ke dashboard:
php artisan make:filament-userJalankan server lokal:
php artisan serveSekarang Anda bisa login ke /admin menggunakan user yang baru dibuat.
4. Membuat CRUD User (Opsional)
Sebagai percobaan, coba generate resource User:
php artisan make:filament-resource User --generateFilament akan otomatis membuatkan CRUD User lengkap dengan form dan tabel.
5. Membuat Model & Migrasi Article
Buat model dengan migrasi:
php artisan make:model Article -mEdit file migrasi database/migrations/xxxx_xx_xx_xxxxxx_create_articles_table.php:
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->string('slug')->unique();
$table->string('image')->nullable();
$table->timestamps();
});Jalankan migrasi:
php artisan migrate6. Unguard Semua Model
Tambahkan Model::unguard() di app/Providers/AppServiceProvider.php agar Filament bisa menyimpan data tanpa kendala mass assignment:
use Illuminate\Database\Eloquent\Model;
public function boot(): void
{
Model::unguard();
}7. Membuat CRUD Resource Article
Generate resource untuk Article:
php artisan make:filament-resource Article --generateFilament akan otomatis membuat form input, tabel, dan halaman CRUD untuk Article.
8. Hasil Akhir
Sekarang Anda sudah punya:
✅ Laravel project bernama website
✅ Admin Panel dengan Filament di /admin
✅ CRUD User (opsional)
✅ CRUD Article dengan field title, content, slug, dan image
Kesimpulan
Dengan Laravel + Filament, membangun admin panel jadi super cepat. Dari setup awal composer create-project --prefer-dist laravel/laravel website, mengatur database, hingga membuat CRUD Article, semua bisa dilakukan hanya dalam beberapa menit.
Filament sangat cocok untuk membangun aplikasi CMS, dashboard internal, e-commerce, maupun SaaS.