Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Filament Column Filters

Filament Column Filters Laravel Package

zvizvi/filament-column-filters

Excel-style column header filters for Filament tables: add search, date range, select, and numeric range popups to any column, backed by real Filament filters with sync support and RTL.

View on GitHub
Deep Wiki
Context7

Excel-style column header filters for Filament tables, with search, date range and multi-select filter types that sync with regular table filters.

Frequently asked questions about Filament Column Filters
How do I install and register zvizvi/filament-column-filters?
Install it with composer require zvizvi/filament-column-filters, then register FilamentColumnFiltersPlugin::make() in the plugin() chain of each panel where you want column filters. Registration is required: the columnFilter() method and the header popups only become available on panels where the plugin is registered. There are no migrations and no database changes, so the install is purely additive.
Which Filament versions does this package support?
The README excerpt does not publish a version-support matrix, so check the composer.json constraint on Packagist before installing against your pinned Filament version. Because the package injects UI into table column headers and reads table filter state, it is sensitive to Filament major releases such as v3 to v4 and to Livewire and Alpine upgrades. Install it on a staging branch with your exact Filament and Livewire versions and click through every filter type before merging.
How do I add a filter icon to a table column?
Call columnFilter() on any table column inside your table() method and pass the filter type you want, for example TextColumn::make('status')->columnFilter(ColumnFilter::select()). Import Zvizvi\FilamentColumnFilters\Filters\ColumnFilter and chain the static helper for search, date, select or range. Configuration is per column, so you can enable header filters on just a few columns and leave the rest of the table unchanged.
What filter types does ColumnFilter provide?
There are four: search for free-text filtering on a column, date for a date range with presets such as today, last 7 days, last 30 days, this month and this year plus a custom from and until range, select for single or multi value picking, and range for a numeric from and until range with two number inputs side by side. Each type renders inside a small popup opened from the column header icon, in the style of Excel column filters.
How does syncWith() work with filters I already have on the table?
syncWith() points a header filter at an existing Filament table filter, so the popup reads and writes that filter's state instead of creating a new one. Choosing a value in the header popup updates the regular filter, dropdown included, and changing the regular filter updates the header popup. This keeps the header icons a second view onto a single source of truth rather than a parallel filtering engine.
Do header filters appear in the standard Filament filters dropdown?
They do not clutter the standard filters dropdown, which is the point of the Excel-style layout. They still behave like real Filament filters: they apply to the table query, show the standard filter indicators with working remove buttons, and follow the usual reset behaviour. If you also want a dropdown entry, sync the header filter with an existing filter that is already listed there.
What SQL do the search and range filters generate, and are they fast on large tables?
The search type runs a free-text search on the column, which in practice means a LIKE style match, so it is fine for admin-sized datasets but needs verification on very large tables. The range type compares numeric from and until values, so check behaviour on decimal, string-stored date, enum and JSON columns before relying on it. Log the generated SQL and make sure the filtered columns are indexed.
Does the select filter load options eagerly, and will a large related table be slow?
The README does not document whether select option lists are eager or lazy, so measure it against your real data volumes. On a multi-select populated from a related table with hundreds of thousands of rows, the cost of building the option list can dominate the page load. If that matches your situation, test with production-like data or scope the options query yourself.
Is RTL and localization supported?
Yes, RTL is fully supported and Hebrew translations are included with the package. For other locales you would add your own translation files. Accessibility and keyboard navigation inside the popup are not documented, so verify tab order and focus handling if your users rely on the keyboard.
Is this package production-ready, and who maintains it?
It is a single-maintainer package with a small star count and no dependents, and the README excerpt advertises no test suite or CI, so treat it as an unvetted third-party dependency you may end up owning. Mitigate by pinning the version, adding a smoke test that opens each filter type as an upgrade gate for new Filament releases, and confirming that header injection uses public Filament extension points rather than overridden views. It is MIT licensed and purely additive, so it can be removed or forked at low cost.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin