Berikut adalah tutorial pembuatan aplikasi CRUD sederhana dengan dua parameter (nama dan email) menggunakan Laravel dan Filament. Filament adalah alat yang memudahkan pembuatan panel admin dan CRUD dalam aplikasi Laravel.
Prasyarat
Pastikan kamu telah menginstal Laravel. kamu dapat membuat proyek baru dengan perintah berikut:
composer create-project laravel/laravel crud-app
Filament memerlukan Laravel versi 8 atau lebih baru.
Langkah 1: Instalasi Filament
Pertama, kita perlu menambahkan paket Filament ke dalam proyek Laravel. Jalankan perintah berikut:
composer require filament/filament
Setelah instalasi, kamu bisa mengatur Filament dengan menjalankan perintah berikut:
php artisan make:filament-user
Perintah ini akan membuat user admin Filament pertama yang dapat digunakan untuk mengakses dashboard.
Langkah 2: Buat Model dan Migration
Kita akan membuat model dan migration untuk menyimpan data nama dan email. Jalankan perintah berikut untuk membuat model dan migration:
php artisan make:model Contact -m
Edit file migration di `database/migrations` yang baru saja dibuat, sesuaikan dengan struktur tabel yang diinginkan:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('contacts', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('contacts');
}
};
Jalankan migration untuk membuat tabel di database:
php artisan migrate
Langkah 3: Buat Filament Resource
Filament Resource akan secara otomatis membuatkan interface CRUD untuk model kita. Jalankan perintah berikut untuk membuat resource:
php artisan make:filament-resource Contact
Perintah ini akan menghasilkan beberapa file, termasuk ContactResource.php, ContactResourceForm.php, dan ContactResourceTable.php di dalam direktori app/Filament/Resources.
Langkah 4: Konfigurasi Filament Resource
Edit file ContactResource.php untuk menentukan halaman dan cara tampilannya. Filament sudah menyediakan template dasar untuk form dan tabel.
namespace App\Filament\Resources;
use App\Filament\Resources\ContactResource\Pages;
use App\Filament\Resources\ContactResource\RelationManagers;
use App\Models\Contact;
use Filament\Forms;
use Filament\Resources\Form;
use Filament\Resources\Resource;
use Filament\Resources\Table;
use Filament\Tables;
use Filament\Tables\Columns\TextColumn;
use Filament\Forms\Components\TextInput;
class ContactResource extends Resource
{
protected static ?string $model = Contact::class;
protected static ?string $navigationIcon = 'heroicon-o-collection';
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('name')
->required()
->maxLength(255),
TextInput::make('email')
->required()
->email()
->maxLength(255),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('name'),
TextColumn::make('email'),
TextColumn::make('created_at')->dateTime(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
]);
}
public static function getPages(): array
{
return [
'index' => Pages\ListContacts::route('/'),
'create' => Pages\CreateContact::route('/create'),
'edit' => Pages\EditContact::route('/{record}/edit'),
];
}
}
Langkah 5: Mengakses Panel Admin Filament
Filament secara otomatis akan menambahkan resource ini ke dalam navigasi admin. Jalankan server Laravel:
php artisan serve
Akses panel admin dengan mengunjungi URL:
http://localhost:8000/admin
Login menggunakan credential yang telah dibuat saat menjalankan make:filament-user.
Langkah 6: Menambahkan Kontak
Setelah masuk ke dashboard Filament, kamu akan melihat menu `Contacts` di navigasi. Klik menu tersebut, lalu kamu dapat menambahkan, mengedit, atau menghapus kontak dengan form yang telah dibuat.
Dengan mengikuti langkah-langkah ini, kamu telah berhasil membuat aplikasi CRUD sederhana menggunakan Laravel dan Filament. Filament sangat memudahkan pembuatan panel admin dan pengelolaan data dengan cepat dan efisien. kamu bisa melanjutkan dengan menambahkan lebih banyak fitur sesuai kebutuhan aplikasi kamu. Selamat mencoba!