From a3f3842cc1b23393d341b42dc498b9a9073fdeee Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Mon, 16 Mar 2026 22:51:45 +0700 Subject: [PATCH] feat: Implement custom search queries for company, partner media, and journalist columns, and remove searchable from the created_at column. --- .../Manage/Partners/PartnerResource.php | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/Filament/Resources/Manage/Partners/PartnerResource.php b/app/Filament/Resources/Manage/Partners/PartnerResource.php index 14c359b..eab66cf 100644 --- a/app/Filament/Resources/Manage/Partners/PartnerResource.php +++ b/app/Filament/Resources/Manage/Partners/PartnerResource.php @@ -286,7 +286,12 @@ public static function table(Table $table): Table ->columns([ TextColumn::make('company.name') ->label('Perusahaan') - ->searchable() + ->searchable(query: function ($query, $search) { + $query->whereHas('company', function ($q) use ($search) { + $q->where('companies.name', 'like', "%{$search}%") + ->orWhere('companies.director_name', 'like', "%{$search}%"); + }); + }) ->sortable() ->description( fn (User $record) => new HtmlString( @@ -297,12 +302,20 @@ public static function table(Table $table): Table TextColumn::make('company.partnerMedia.name') ->label('Media') - ->searchable() + ->searchable(query: function ($query, $search) { + $query->whereHas('company.partnerMedia', function ($q) use ($search) { + $q->where('partner_media.name', 'like', "%{$search}%"); + }); + }) ->sortable(), TextColumn::make('company.journalists.name') ->label('Jurnalis') - ->searchable() + ->searchable(query: function ($query, $search) { + $query->whereHas('company.journalists', function ($q) use ($search) { + $q->where('journalists.name', 'like', "%{$search}%"); + }); + }) ->sortable() ->badge(), @@ -324,7 +337,6 @@ public static function table(Table $table): Table ->label('Tgl Daftar') ->date() ->sortable() - ->searchable() ->dateTime('l, d F Y H:i:s') ->wrap(), ])