© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
FilamentF
Filament•3y ago•
4 replies
umardi_

Dynamic getTableQuery on Toggle Filter

Hello everyone. For many cases, I want to dynamically return different query from getTableQuery based on toggle filter. Initially, we want the X query with some records (toggle OFF). But when we toggle ON a filter, execute Y query to return new records. For example:

Toggle filter example:

protected function getTableFilters(): array
    {
        return [
            Tables\Filters\Filter::make('notifikasi_pemeliharaan')
                ->query(fn (Builder $query): Builder => $query->where('notifikasi_pemeliharaan', false))
                ->columnSpan('full')
                ->toggle(),
        ];
    }
protected function getTableFilters(): array
    {
        return [
            Tables\Filters\Filter::make('notifikasi_pemeliharaan')
                ->query(fn (Builder $query): Builder => $query->where('notifikasi_pemeliharaan', false))
                ->columnSpan('full')
                ->toggle(),
        ];
    }


Query before (When Toggle filter OFF)


protected function getTableQuery(): Builder
    {
        return Peralatan::query()
            ->where('aktif_tidak', true)
            ->where('pelihara_tidak', true)
            });
    }
protected function getTableQuery(): Builder
    {
        return Peralatan::query()
            ->where('aktif_tidak', true)
            ->where('pelihara_tidak', true)
            });
    }


Query expected, after toggle ON

protected function getTableQuery(): Builder
    {
        return Peralatan::query()
            ->where('aktif_tidak', true)
            ->where('pelihara_tidak', true)
            ->where('notifikasi_pemeliharaan', true)  // Now it pull new records that not exists in table before
            });
    }
protected function getTableQuery(): Builder
    {
        return Peralatan::query()
            ->where('aktif_tidak', true)
            ->where('pelihara_tidak', true)
            ->where('notifikasi_pemeliharaan', true)  // Now it pull new records that not exists in table before
            });
    }


How to make it possible? Or is there any better approach? Thank you all.
Filament banner
FilamentJoin
A powerful open source UI framework for Laravel • Build and ship admin panels & apps fast with Livewire
20,307Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements

Similar Threads

Toggle filter inline layout when using FiltersLayout::AboveContent
FilamentFFilament / ❓┊help
2y ago
Dynamic Filter
FilamentFFilament / ❓┊help
16mo ago
Dynamic toggle columns based on relationship
FilamentFFilament / ❓┊help
5mo ago
Toggle Filter only used when On?
FilamentFFilament / ❓┊help
3y ago