Membuat Table Widget
Membuat Table Widget
14 Sheet
namespace App\Filament\Widgets;
use App\Filament\Resources\TransaksiResource; use App\Helpers\Helper; use App\Models\Transaksi; use Filament\Tables; use Filament\Tables\Columns\TextColumn; use Filament\Tables\Table; use Filament\Widgets\TableWidget as BaseWidget; use Squire\Models\Currency;
class LatestOrders extends BaseWidget { protected int | string | array $columnSpan = 'full';
protected static ?int $sort = 3; public function table(Table $table): Table{ return $table ->query(TransaksiResource::getEloquentQuery()) ->defaultPaginationPageOption(5) ->defaultSort('created_at', 'desc') ->columns([ Tables\Columns\TextColumn::make('created_at') ->label('Order Date') ->date() ->sortable(), TextColumn::make('paket.nama_paket') ->label('Paket') ->searchable() ->sortable(), TextColumn::make('paket.harga') ->label('Harga') ->formatStateUsing(fn (string $state): string => "Rp. ".number_format($state)) ->searchable() ->sortable() ->summarize([ Tables\Columns\Summarizers\Sum::make() ->money('Idr'), ]), TextColumn::make('paket.limit') ->label('Masa Aktif') ->badge() ->formatStateUsing(fn (Transaksi $record): string => "{$record->paket->limit} {$record->paket->satuan} - sisa aktif ". $record->paket->satuan == 'seumur hidup' ? 'Seumur hidup' : Helper::siswaWaktu($record->created_at, $record->paket->satuan, $record->paket->limit)) ->colors([ 'primary', ]), TextColumn::make('status') ->badge(), TextColumn::make('user.email') ->label('User') ->searchable(), TextColumn::make('reference'), ]) ->actions([ Tables\Actions\Action::make('open') ->url(fn (Transaksi $record): string => TransaksiResource::getUrl('edit', ['record' => $record])), ]);}}kemudian anda bisa menambahkannya di panel dan akan muncul di halaman dashboard ->widgets([ Widgets\AccountWidget::class, Widgets\FilamentInfoWidget::class, LatestOrders::class ])jangan lupa mengimport LatestOrder::class tersebut di atastable widgetreferensi:https://filamentphp.com/docs/3.x/panels/dashboard#table-widgets
Komentar
Ada 0 komentar pada episode ini.