© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•3y ago•
6 replies
Mark Chaney

Table SelectFilter

I know I am missing something simple here, so just need a second set of eyes.

SelectFilter::make('status_id')
    ->label('Status')
    ->relationship('status', 'name'),
SelectFilter::make('type')
    ->label('Status Type')
    ->relationship('status', 'type'),
SelectFilter::make('status_id')
    ->label('Status')
    ->relationship('status', 'name'),
SelectFilter::make('type')
    ->label('Status Type')
    ->relationship('status', 'type'),
The
type
type
is just
open
open
or
closed
closed
. Right now it doesnt filter by it and for some reason it lists 10 options in the select with half being open and half closed. Filtering by status name works fine.
Solution
I ended up doing
SelectFilter::make('type')
    ->label('Status Type')
    ->options([
        'open' => 'Open',
        'closed' => 'Closed',
    ])
    ->default(function () {
        if (request()->routeIs('outreach-activities')) {
            return 'open';
        }
    })
    ->query(
        function ($query, $data) {
            $selectedStatus = $data['value'] ?? null;

            $query->when($selectedStatus, function ($q) use ($selectedStatus) {
                $q->whereHas('status', function ($subQuery) use ($selectedStatus) {
                    $subQuery->where('type', $selectedStatus);
                });
            });
        }
    ),
SelectFilter::make('type')
    ->label('Status Type')
    ->options([
        'open' => 'Open',
        'closed' => 'Closed',
    ])
    ->default(function () {
        if (request()->routeIs('outreach-activities')) {
            return 'open';
        }
    })
    ->query(
        function ($query, $data) {
            $selectedStatus = $data['value'] ?? null;

            $query->when($selectedStatus, function ($q) use ($selectedStatus) {
                $q->whereHas('status', function ($subQuery) use ($selectedStatus) {
                    $subQuery->where('type', $selectedStatus);
                });
            });
        }
    ),
Jump to solution
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

Table SelectFilter
FilamentFFilament / ❓┊help
9mo ago
Table - SelectFilter for Table Field
FilamentFFilament / ❓┊help
12mo ago
Autopopulate SelectFilter by table values?
FilamentFFilament / ❓┊help
12mo ago
SelectFilter ordering
FilamentFFilament / ❓┊help
11mo ago