Memahami Fitur List Records pada Laravel Filament
Fitur List Records pada Laravel Filament merupakan bagian fundamental dari proses pengelolaan data dalam modul CRUD. Melalui fungsi ini, developer dapat menampilkan data secara dinamis dalam bentuk tabel lengkap dengan fitur sorting, filtering, pagination, hingga aksi manipulasi data dalam satu tampilan. Komponen ini menjadikan manajemen data terasa lebih cepat dan efisien.
Dalam pengembangan dashboard admin, penggunaan List Records sangat membantu developer untuk menghadirkan tabel data yang informatif dan mudah dipelajari oleh pengguna non-teknis. Dengan berbagai komponen tambahan seperti bulk actions, table actions, dan pencarian, fitur ini menawarkan kemampuan profesional untuk aplikasi skala kecil hingga enterprise.
Apa Itu List Records?
Secara definisi, List Records merupakan halaman pada Filament yang secara khusus menampilkan daftar data dari sebuah Model Laravel dalam bentuk tabel yang terstruktur. Pada struktur Filament, halaman ini secara otomatis disediakan ketika developer membuat sebuah Resource.
Fitur inti yang biasanya tersedia pada halaman List Records antara lain:
- Pagination otomatis
- Column sorting
- Search bar
- Table filters
- Table actions (edit, view, delete)
- Bulk actions
- Export data (opsional melalui plugin)
Dengan kemampuan ini, developer tidak perlu membangun tabel dari nol menggunakan HTML + JavaScript.
Struktur Halaman List Records
Ketika developer mengeksekusi perintah pembuatan Resource seperti:
php artisan make:filament-resource Post
Maka Filament menghasilkan struktur seperti:
app/
└── Filament/
└── Resources/
└── PostResource/
├── Pages/
│ ├── ListPosts.php
│ ├── CreatePost.php
│ └── EditPost.php
└── PostResource.php
File ListPosts.php adalah implementasi halaman List Records.
Contoh Implementasi List Records
Berikut contoh kode dasar halaman ListPosts.php:
namespace App\Filament\Resources\PostResource\Pages;
use App\Filament\Resources\PostResource;
use Filament\Resources\Pages\ListRecords;
class ListPosts extends ListRecords
{
protected static string $resource = PostResource::class;
}
Kode di atas sudah cukup untuk menampilkan tabel dengan data Model Post.
Mendefinisikan Table Columns
Tabel pada List Records diatur melalui method table() yang ada pada class Resource. Contoh penerapannya:
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('title')
->sortable()
->searchable(),
Tables\Columns\TextColumn::make('created_at')
->dateTime()
->sortable(),
])
->filters([])
->actions([])
->bulkActions([]);
}
Keterangan:
PropertiFungsisortable()Mengaktifkan sorting (ASC/DESC)searchable()Mengaktifkan fitur pencariandateTime()Format tanggal otomatis
Menambahkan Table Filters
Fitur filter membantu user menampilkan data berdasarkan kondisi tertentu.
Contoh filter berdasarkan tanggal:
->filters([
Tables\Filters\Filter::make('published')
->query(fn ($query) => $query->whereNotNull('published_at')),
])
Filter dapat berupa:
- Checkbox
- Select dropdown
- Date range
- Custom filter callback
Menambahkan Table Actions
Table Actions umumnya digunakan untuk aksi per record seperti edit, view, atau delete.
Contoh penerapan:
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
Aksi dapat diperluas menjadi aksi custom.
Menambahkan Bulk Actions
Bulk actions memungkinkan user memproses banyak record sekaligus.
Contoh:
->bulkActions([
Tables\Actions\DeleteBulkAction::make(),
])
Bulk Actions sangat berguna untuk fitur:
- Multi delete
- Export data
- Approval massal
- Update massal
Pencarian Data (Searchable)
Jika table menggunakan searchable(), maka Filament otomatis menampilkan search bar pada bagian header halaman. User dapat mencari berdasarkan kolom yang ditandai searchable.
Contoh kolom searchable:
Tables\Columns\TextColumn::make('title')->searchable()
Keunggulan Fitur List Records
Berikut beberapa keuntungan penggunaan List Records dalam dashboard Filament:
- Tanpa HTML & JavaScript manual
- Komponen tabel yang kaya
- Validasi otomatis dari model
- Integrasi sorting & filter bawaan
- Mendukung relasi antar model
- UI modern & responsif
- Extensible untuk kebutuhan enterprise
Dengan kelebihan tersebut, Filament menjadi pilihan populer untuk pengembangan sistem administrasi.
Kesimpulan
Fitur List Records pada Laravel Filament adalah solusi efisien dan elegan untuk menampilkan data dalam sebuah dashboard admin. Dengan dukungan komponen table yang lengkap, developer dapat menghadirkan tampilan data yang informatif dan siap digunakan oleh pengguna bisnis. Integrasinya yang seamless dengan Resource lainnya seperti Create Record dan Edit Record menjadikannya fondasi penting dalam pengembangan modul CRUD modern.