Pluginify

Masuk Daftar
Home > Blog > Laravel > Memahami Fitur Create Record pada Laravel Filament

Memahami Fitur Create Record pada Laravel Filament

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:

  1. Tanpa penulisan HTML & JavaScript
  2. Validasi otomatis & mudah dipasang
  3. Mendukung relasi antar model
  4. Integrasi komponen form yang kaya
  5. Notifikasi dan redirect yang fleksibel
  6. Struktur rapi dan scalable
  7. 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.

Pluginify
Pluginify