Filament table builder with union query

I have a Filament table that displays records from a custom UNION query combining two tables (users and groups). The list displays correctly, but when clicking a record in the table, it always returns the wrong model because some records share the same id. This causes Filament to resolve the wrong model in actions. Is there a way to let Filament know which column should be unique (e.g., type + id) to correctly identify and resolve the model? Here’s my getTableQuery: private function getTableQuery(): Builder { $customers = Customer::query() ->select([ 'id', 'name', DB::raw("'customer' as type"), ]) ->toBase(); $groups = Groups::query() ->select([ 'id', 'name', DB::raw("'group' as type"), ]) ->toBase(); // Union the two queries return $users->union($groups); } In the table: TextColumn::make('name') ->label('Name') ->sortable() ->searchable(), Action::make('view') ->action(fn ($record) => dd($record)), // Always finds User instance even when it should be a Group
0 Replies
No replies yetBe the first to reply to this messageJoin
Want results from more Discord servers?
Add your server