Memahami Fitur Create Record pada Laravel Filament
Fitur Create Record dalam Laravel Filament merupakan salah satu bagian penting dari proses CRUD yang bertanggung jawab untuk menambahkan data baru ke database. Melalui antarmuka yang terintegrasi dengan Resource, Filament menyediakan formulir input yang dapat dikustomisasi sesuai kebutuhan bisnis, sehingga proses entry data menjadi lebih mudah dan konsisten.
Secara teknis, fitur Create Record terhubung langsung dengan komponen form pada Filament yang memiliki berbagai tipe input, validasi bawaan, hingga dukungan relasi antar tabel. Dengan demikian, developer dapat membangun panel admin yang modern, cepat, dan bebas dari penulisan kode HTML dan JavaScript secara manual.
Apa Itu Create Record?
Create Record adalah halaman khusus dalam struktur Resource Filament yang digunakan untuk menangani pembuatan data baru. Halaman ini dibuat secara otomatis ketika developer menjalankan perintah generate Resource menggunakan artisan.
Create Record berfungsi untuk:
- Menampilkan form input
- Melakukan validasi field
- Memproses dan menyimpan data
- Mengalihkan atau menampilkan pesan keberhasilan
Dengan desain ini, proses CRUD menjadi lebih sederhana dan cepat dibangun.
Struktur Halaman Create Record
Setelah developer membuat sebuah Resource dengan perintah:
php artisan make:filament-resource Post
Maka otomatis akan dihasilkan struktur:
app/Filament/Resources/PostResource/Pages/ ├── ListPosts.php ├── CreatePost.php └── EditPost.php
File CreatePost.php merupakan implementasi Create Record.
Implementasi Dasar Create Record
Secara default, struktur dasar file Create Record terlihat seperti berikut:
namespace App\Filament\Resources\PostResource\Pages;
use App\Filament\Resources\PostResource;
use Filament\Resources\Pages\CreateRecord;
class CreatePost extends CreateRecord
{
protected static string $resource = PostResource::class;
}
Kode tersebut sudah cukup untuk melakukan insert data baru berdasarkan form yang didefinisikan dalam Resource.
Mendefinisikan Form untuk Create Record
Form untuk Create Record diatur pada class Resource, bukan di dalam halaman CreatePost. Contoh implementasi form di Resource:
use Filament\Forms;
use Filament\Resources\Form;
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('title')
->required()
->label('Judul'),
Forms\Components\Textarea::make('content')
->label('Konten')
->maxLength(2000),
Forms\Components\Toggle::make('is_published')
->label('Publikasikan?'),
]);
}
Untuk kebutuhan lebih kompleks, Filament menyediakan komponen lain seperti:
- File uploads
- Select relationship
- Rich editor (Tiptap/CKEditor)
- Repeater
- Date & time picker
- dan lainnya
Validasi pada Create Record
Filament dapat melakukan validasi melalui komponen form atau melalui rules pada model Laravel. Contoh validasi melalui komponen:
Forms\Components\TextInput::make('title')
->required()
->unique()
->maxLength(255)
Dengan ini, form tidak dapat disimpan jika belum memenuhi aturan validasi.
Memodifikasi Data Sebelum Insert
Untuk kebutuhan bisnis tertentu, developer dapat mengubah data sebelum proses create. Misal auto generate slug dari title:
protected function mutateFormDataBeforeCreate(array $data): array
{
$data['slug'] = \Str::slug($data['title']);
return $data;
}
Method ini sangat berguna untuk:
- Enkripsi data
- Penambahan relasi
- Penyesuaian format
- Logging manual
- dan kebutuhan bisnis lainnya
Mengatur Notifikasi Setelah Create
Filament mendukung notifikasi bawaan berbasis session toast atau banner. Contoh mengubah pesan sukses:
protected function getCreatedNotificationTitle(): ?string
{
return 'Data berhasil ditambahkan!';
}
Hal ini penting dalam user experience agar pengguna admin mengetahui status aksi mereka.
Redirection Setelah Create
Secara default, Filament akan redirect ke halaman list. Jika ingin redirect ke halaman lain, gunakan:
protected function getRedirectUrl(): string
{
return $this->getResource()::getUrl('edit', ['record' => $this->record]);
}
Contoh kasus redirect langsung ke halaman edit setelah create.
Keunggulan Fitur Create Record
Beberapa kelebihan penerapan Create Record dalam Filament antara lain:
- Tanpa penulisan HTML & JavaScript
- Validasi otomatis & mudah dipasang
- Mendukung relasi antar model
- Integrasi komponen form yang kaya
- Notifikasi dan redirect yang fleksibel
- Struktur rapi dan scalable
- Mendukung file upload & media
Dengan keunggulan tersebut, Create Record sangat cocok untuk aplikasi enterprise dan sistem internal yang dinamis.
Kesimpulan
Fitur Create Record pada Laravel Filament memberikan solusi pragmatis untuk proses input data baru dalam aplikasi berbasis panel admin. Dengan dukungan form builder yang kuat, validasi bawaan, serta mekanisme penyimpanan data yang aman, developer dapat menghemat waktu dan tenaga dalam membangun fitur CRUD. Kombinasi fleksibilitas dan kemudahan ini menjadikan Filament sebagai pilihan favorit dalam pengembangan sistem administrasi modern.