Membuat Stats Overview Widget di List Resource menggunakan package Trand
Membuat Stats Overview Widget di List Resource menggunakan package Trand
14 Sheet
namespace App\Filament\Resources\TransaksiResource\Widgets;
use App\Filament\Resources\TransaksiResource\Pages\ListTransaksis; use App\Models\Transaksi; use Filament\Widgets\Concerns\InteractsWithPageTable; use Filament\Widgets\StatsOverviewWidget as BaseWidget; use Filament\Widgets\StatsOverviewWidget\Stat; use Flowframe\Trend\Trend; use Flowframe\Trend\TrendValue;
class StatsOverviewTransaksi extends BaseWidget { use InteractsWithPageTable;
protected static ?string $pollingInterval = null; protected function getTablePage(): string{ return ListTransaksis::class;} protected function getStats(): array{ $orderData = Trend::model(Transaksi::class) ->between( start: now()->subYear(), end: now(), ) ->perMonth() ->count(); return [ Stat::make('Orders', $this->getPageTableQuery()->count()) ->chart( $orderData ->map(fn (TrendValue $value) => $value->aggregate) ->toArray() ), Stat::make('Paid orders', $this->getPageTableQuery()->whereIn('status', ['PAID'])->count()), Stat::make('Average price', number_format($this->getPageTableQuery()->avg('total_amount'), 2)), ];}}buka listTransaksi.php. +-- app | +-- Filament | | +-- Resources | | | +-- TransaksiResource | | | | | +-- Pages | | | | | | +-- ListTransaksi.phptambahkan script berikut:protected function getHeaderWidgets(): array { return TransaksiResource::getWidgets(); }script ini menunjukkan dimana kita ingin meletakkan Stats yang barusan kita buat. kita ingin meletakkan nya di bagian header pada ListTransaksi.phpbuka TransaksiResource.php. +-- app | +-- Filament | | +-- Resources | | | +-- TransaksiResource.phptambahkan script berikut:public static function getWidgets(): array { return [ StatsOverviewTransaksi::class, ]; }Stats Overview Widgetreferensi:https://filamentphp.com/docs/3.x/widgets/chartshttps://github.com/Flowframe/laravel-trend
Komentar
Ada 0 komentar pada episode ini.