diff --git a/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php b/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php index 5644e3b8..7575be33 100644 --- a/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php +++ b/app/Filament/Clusters/StaticData/Resources/StatistikoDetails/Tables/StatistikoDetailsTable.php @@ -26,11 +26,21 @@ class StatistikoDetailsTable ->columns([ Stack::make([ ToggleColumn::make('is_active'), - TextColumn::make('player_name')->color('primary')->icon('phosphor-copy')->copyable()->searchable(), + TextColumn::make('player_name') + ->color('primary') + ->icon('phosphor-copy') + ->copyable() + ->searchable(query: function (Builder $query, string $search): Builder { + return $query->where(function (Builder $subQuery) use ($search) { + // MongoDB-sichere Suche über 'name' ODER 'email' mittels Regex + $subQuery->where('name', 'regexp', '/'.$search.'/i') + ->orWhere('email', 'regexp', '/'.$search.'/i'); + }); + }), TextColumn::make('ss_player_id') ->color('success')->icon('phosphor-copy')->copyable() ->searchable( - query: fn($query, $search) => $query->orWhere('ss_player_id', (int) $search) + query: fn ($query, $search) => $query->orWhere('ss_player_id', (int) $search) ), TextColumn::make('positions.name')->badge()->color('warning') ->sortable(), @@ -43,6 +53,13 @@ class StatistikoDetailsTable TextColumn::make('last_update')->date()->prefix('Last Update: '), ]), ]) + ->searchQuery(function (Builder $query, string $search): Builder { + return $query->where(function (Builder $subQuery) use ($search) { + // Nutzen Sie 'regexp' als Operator und packen Sie Flags in den String /.../i + $subQuery->where('name', 'regexp', '/'.$search.'/i') + ->orWhere('email', 'regexp', '/'.$search.'/i'); + }); + }) ->emptyStateHeading('No double player in details') ->contentGrid([ 'md' => 2, @@ -68,6 +85,7 @@ class StatistikoDetailsTable if (! $data['find_double']) { return null; } + return 'Find Double'; }),