Customize table search

May 31, 2022
Table builder

If you need to customize the table search, you can override applySearchToTableQuery on a Livewire component that uses \Filament\Tables\Concerns\InteractsWithTable trait.

This is useful if you need to search by a column that is not in the table or if you are going to use Filament in an existing project that already has a complex search scope already setup.

Note: if you are using Filament Admin Panel this would be your "ListRecords" Page


public function isTableSearchable(): bool
return true;
protected function applySearchToTableQuery(Builder $query): Builder
if (filled($searchQuery = $this->getTableSearchQuery())) {
//In this example a filter scope on the model is used
//But you can also customize the query right here!
return $query->filter(['search' => $searchQuery]);
return $query;
public function scopeFilter($query, array $filters)
$query->when($filters['search'] ?? null, function ($query, $search) {
$query->where('title', 'like', '%'.$search.'%')
->orWhere('author_name', 'like', '%'.$search.'%');
->when($filters['status'] ?? null, function ($query, $status) {
$query->where('status', '=', $status);

applySearchToTableQuery is not exist in ListRecords


Just what I needed! Thnx!