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 website
Catatan penting:
website
di akhir perintah adalah nama folder project.- Jika Anda menggantinya, misalnya
blog
, maka folder project akan bernamablog
.
Setelah selesai, masuk ke folder project:
cd website
2. 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=123
Lalu jalankan migrasi awal:
php artisan migrate
3. Instalasi Filament
Tambahkan package Filament:
composer require filament/filament
Lalu install panel:
php artisan filament:install --panels
Buat user untuk login ke dashboard:
php artisan make:filament-user
Jalankan server lokal:
php artisan serve
Sekarang 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 --generate
Filament akan otomatis membuatkan CRUD User lengkap dengan form dan tabel.
5. Membuat Model & Migrasi Article
Buat model dengan migrasi:
php artisan make:model Article -m
Edit 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 migrate
6. 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 --generate
Filament 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.