Using tables with aggregated / grouped data
When working with tables for reports / statistics often aggregated data is used, e.g. grouped by day.
To customize the query overwrite the getTableQuery in the ListPage, make sure it returns also the unique key
protected function getTableQuery(): Builder{ return Participant::select( DB::raw('MIN(id) as id'), DB::raw('DATE(datetimecolumn) as date'), DB::raw('count(*) as total')) ->orderBy('date', 'DESC') ->groupBy('date');}
Obviously it makes no sense to offer a edit page for the grouped records, but when you want to show a modal or more details for the grouped row you can either overwrite resolveTableRecord to return a model that should be used by $record:
protected function resolveTableRecord(?string $key): ?Model{ return Participant::find($key)->first();}
Another way is to pass the key into a Action closure via $livewire->mountedTableActionRecord and gather the data from there:
Action::make('Details')->action(fn ($livewire) => dump($livewire->mountedTableActionRecord))
i want to desplay a report in filament form join of my tables I can use this trick ??