Setelah berhasil melakukan create product, maka kita akan belajar menampilkan data-nya dalam bentuk table menggunakan Laravel Filament.
Silahkan teman-teman buka file berikut ini app/Filament/Resources/ProductResource.php, kemudian cari kode berikut ini.
php
public static function table(Table $table): Table
{
return $table
->columns([
//
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
Kemudian ubah menjadi seperti berikut ini.
php
public static function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\ImageColumn::make('image')->circular(),
Tables\Columns\TextColumn::make('title')->searchable(),
Tables\Columns\TextColumn::make('category.name')->searchable(),
Tables\Columns\TextColumn::make('price')->numeric(decimalPlaces: 0)->money('IDR', locale: 'id'),
Tables\Columns\TextColumn::make('description')->html()->limit(50),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
Dari perubahan kode di atas, kita menambahkan beberapa column, yaitu:
-
ImageColumndengan namaimagecssTables\Columns\ImageColumn::make('image')->circular(),Di atas kita tambahkan fungsi
circularagar gambarnya jadi bulat. -
TextColumndengan namatitlecssTables\Columns\TextColumn::make('title')->searchable()Di atas kita tambahkan fungsi
searchableuntuk proses pencarian berdasarkantitleproduct. -
TextColumndengan namacategory.namecssTables\Columns\TextColumn::make('category.name')->searchable()Di atas kita tambahkan fungsi
searchableuntuk proses pencarian berdasarkannamecategory. -
TextColumndengan namapricecssTables\Columns\TextColumn::make('price')->numeric(decimalPlaces: 0)->money('IDR', locale: 'id')Di atas kita tambahkan fungsi
numericdi dalam di dalamnya kita format dengandecimaldan kita ubah ke mata uang Indonesia (Rp.). -
TextColumndengan namadescriptioncssTables\Columns\TextColumn::make('description')->html()->limit(50)Di atas kita tambahkan fungsi
htmlkarena isi dari content berupa sintaks HTML dan kita batas50kata menggunakan fungsilimit.
Sekarang, silahkan reload project-nya, jika berhasil maka kurang lebih hasilnya akan seperti berikut ini.
