vyuldashev/nova-column-filter
A Laravel Nova filter that lets you filter resources directly by their table columns. Configure which columns are searchable and in what order, giving users a quick, native way to narrow down resource lists without building custom filter classes.
Filter work. This package reduces that to a configuration line per column. The decision it informs: do our ops-facing Nova screens get column-level filtering by default, or does each request stay a one-off build?SelectFilter and BooleanFilter already cover it and this adds nothing.Consider it when:
Filter subclass per column per resource has become repetitive.app/Nova/Filters under your namespace, pin it, and own it. Treat upstream as a reference implementation, not a supported dependency.Look elsewhere when:
LIKE %...% column filter.SelectFilter/BooleanFilter win on supportability.For executives (one paragraph): This is a small, low-cost accelerator for our internal admin panel. It turns "add a filter for this column" requests — the kind that currently generate a ticket and an engineer-day each — into configuration instead of custom code, and it directly targets recurring support workflows like looking up a customer by email or filtering transactions by status and date. The catch is community size: nine GitHub stars and no downstream users means we should not treat it as a strategic dependency. My recommendation is a timeboxed spike — one engineer, one to two days — to evaluate it against our Nova version and, if it fits, vendor the code into our repo so we own it outright. Downside is bounded to that spike; upside is a measurable reduction in internal-tooling tickets and a cheap test of whether better admin filtering actually lowers support load.
For engineering: It's a thin Nova filter base class that maps a resource column to an appropriate filter input — small enough to read end-to-end in an afternoon and small enough to fork without regret. Proposal: vendor it under app/Nova/Filters, pin the version in the README, and add one test exercising a text column and a date column against our Nova version. Two things must clear source review before we ship it: the column name and operator must be developer-supplied and never request-derived (otherwise it's an injection and column-enumeration surface), and the appended where clause must compose correctly with Nova's indexQuery and authorization pipeline so a user can't filter their way into another tenant's data. Do not add it to composer.json as a floating dependency. Do not use it for authorization-sensitive or customer-facing screens — those get custom filters. Enforce an internal convention: indexed columns only, plus a review-checklist item for column allowlisting. The worst failure mode to guard against is a silent no-op after a Nova upgrade, where the filter renders but no longer constrains the query and admins make decisions on unfiltered data — hence the smoke test. If the audit turns up anything uncomfortable, we drop it and write the equivalent ourselves; the fallback cost is low and already budgeted.
How can I help you explore Laravel packages today?