feat: Implement custom search queries for company, partner media, and journalist columns, and remove searchable from the created_at column.

This commit is contained in:
Yoga Pangestu 2026-03-16 22:51:45 +07:00
parent dd3acffb4d
commit a3f3842cc1

View File

@ -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(),
])