- What does philperusse/nova-column-filter do?
- It is a Laravel Nova filter package that adds a configurable column queryer to resource index tables. You extend its ColumnFilter class, define an allowlist in columns(), and its apply() method maps the chosen column, operator, and value to a WHERE clause on the Nova index query. It is a presentation-layer convenience, not a reporting system.
- How do I install nova-column-filter in a Laravel Nova app?
- Install it with Composer using composer require philperusse/nova-column-filter, then create a filter class that extends the package's ColumnFilter. Define the permitted columns and register the filter in your Nova resource's filters() method. Check the package composer.json constraints first because the last release predates Nova 3.
- Which Laravel and Nova versions does this package support?
- The last release was February 25, 2019, which places it in the Nova 1.x/2.x, Laravel 5.7-6, and PHP 7.2-7.4 window. Nova 3, 4, and 5 changed filter metadata, asset registration, and frontend tooling, so assume breakage until a spike proves otherwise. Run a Composer constraint check against your pinned laravel/nova, illuminate/*, and PHP versions before reading the source.
- Is philperusse/nova-column-filter compatible with Nova 4 or Nova 5?
- Likely no. Nova 4 and 5 changed filter metadata and asset registration, and this package has had no release since 2019. A server-side install can succeed while the filter silently never renders, so verify it empirically against your exact Nova build.
- How do I define which columns users can filter in the Nova filter?
- Override or implement the columns() method to return the allowlist of column names that users may filter on. Keep that list developer-defined and static rather than deriving it from request input. Only those columns should reach the apply() predicate.
- Is nova-column-filter safe for production and does it risk SQL injection?
- The risk is small only if the column and operator sets are developer-defined constants. If any SQL fragment is derived from user input, treat it as SQL injection and cross-tenant disclosure inside the admin panel, which is a hard stop. Also write explicit tests that hand-built predicates do not bypass global scopes or soft deletes.
- Why is my Nova column filter not showing up in the resource index?
- Filters that fail to publish or register usually just do not appear, with no error to alert you. Check Nova major-version compatibility, asset registration, and filter registration in the resource first. This silent failure is common when an old Nova 2-era package runs on a newer Nova build.
- How can I test that the Nova column filter applies the correct query?
- Write a feature test that hits the Nova resource index endpoint with the filter parameters and asserts the returned records. Add assertions that global scopes and soft deletes are still respected by the generated predicate. Because Nova is closed-source and paid, empirical testing against your exact build is more reliable than code inspection.
- What are alternatives to installing philperusse/nova-column-filter?
- Prefer three or four curated, index-aware named Nova filters for most admin needs; they are cheaper to build and produce more consistent results. For saved views, compound filters, or exports, use a purpose-built surface such as Retool, Metabase, or an internal dashboard. You can also fork or port the roughly 150-line reference implementation instead of adding a dependency.
- Is philperusse/nova-column-filter still maintained?
- It appears abandoned: no release since 2019, a single maintainer, no issue triage, and no security feed. Treat the repository as a reference implementation and spec rather than a package to install. If you adopt it, name the future Nova and PHP upgrade work as an owned cost with an owner.