feat(TransmittalResource): enhance search functionality across related models #5
@@ -45,16 +45,36 @@ class TransmittalResource extends Resource
|
||||
->columns([
|
||||
Tables\Columns\Layout\Split::make([
|
||||
Tables\Columns\TextColumn::make('series')
|
||||
->searchable()
|
||||
->searchable(query: function (Builder $query, string $search): Builder {
|
||||
$wildcardSearch = '%' . str_replace(' ', '%', $search) . '%';
|
||||
|
||||
return $query->where(function (Builder $query) use ($wildcardSearch) {
|
||||
$query->where('series', 'like', $wildcardSearch)
|
||||
->orWhereHas('notes', function (Builder $query) use ($wildcardSearch) {
|
||||
$query->where('comment', 'like', $wildcardSearch);
|
||||
})
|
||||
->orWhereHas('files', function (Builder $query) use ($wildcardSearch) {
|
||||
$query->where('description', 'like', $wildcardSearch);
|
||||
});
|
||||
});
|
||||
})
|
||||
->label('Series')
|
||||
->weight(FontWeight::Bold)
|
||||
->columnSpan(2),
|
||||
Tables\Columns\Layout\Stack::make([
|
||||
Tables\Columns\TextColumn::make('client.company')
|
||||
->searchable()
|
||||
->searchable(query: function (Builder $query, string $search): Builder {
|
||||
return $query->whereHas('client', function (Builder $query) use ($search) {
|
||||
$query->where('company', 'like', '%' . str_replace(' ', '%', $search) . '%');
|
||||
});
|
||||
})
|
||||
->weight(FontWeight::SemiBold)->label('Client'),
|
||||
Tables\Columns\TextColumn::make('branch.code')
|
||||
->searchable()
|
||||
->searchable(query: function (Builder $query, string $search): Builder {
|
||||
return $query->whereHas('branch', function (Builder $query) use ($search) {
|
||||
$query->where('code', 'like', '%' . str_replace(' ', '%', $search) . '%');
|
||||
});
|
||||
})
|
||||
->label('Branch'),
|
||||
]),
|
||||
]),
|
||||
|
||||
Reference in New Issue
Block a user