- How do I install nova-input-filter in Laravel Nova?
- Run composer require optimistdigital/nova-input-filter — note the repository now lives under the Outl1ne organization — and let Composer auto-discovery register the service provider. No migrations, config publishing, or data backfill are needed because the filter is stateless configuration. You then create a subclass of the InputFilter base class and register it in your Nova resource's filters() method.
- Which Laravel Nova, Laravel, and PHP versions does nova-input-filter support?
- The package is a Nova extension, so support tracks whatever Nova, Laravel, and PHP combination the current tag declares in its composer.json. Check those constraints against your production versions before requiring it, since a Nova major upgrade is the most likely breakage vector for both the base class and the bundled Vue component. The January 2025 release is the most recent maintenance signal available.
- How do I register an input filter on a Nova resource?
- Subclass the InputFilter base class, give it a display name and optional placeholder, and add it to the filters() array of your Nova resource. The filter then renders as a free-text box on the resource index screen. Whatever the user types is handed to your apply() override, where the actual query logic lives.
- Do I need migrations, published assets, or a Node build for nova-input-filter?
- There are no migrations because the filter is stateless and stores nothing in the database. The one thing worth verifying is the frontend asset: confirm whether the Vue component ships precompiled or whether your asset pipeline needs Node to build it. If assets are precompiled, installation stays a single Composer require plus a resource class.
- How do I override apply() to filter by name, email, or ID?
- Override apply(Request $request, $query, $value) and return a modified Eloquent query built from the typed string. For name or email lookups, use parameterized where or whereLike clauses rather than raw interpolation. Guard blank values first so an empty input simply returns the unmodified query.
- Why did the namespace change from OptimistDigital to Outl1ne?
- The package moved from the OptimistDigital namespace to Outl1ne, so older tags may need manual service-provider registration if auto-discovery does not pick them up. Check the vendor name in your composer require line and any published config. Newer releases should auto-discover without extra steps.
- Can I use multiple InputFilter instances on the same Nova resource?
- Yes, you can register more than one InputFilter subclass on a resource, each with its own name and apply() logic. Each instance keeps its own filter state in the Nova index query string. Keep the display names distinct so the filters do not collide in the UI.
- Is nova-input-filter safe against SQL injection and empty input values?
- The raw user string is passed straight into apply(), so validation, type casting, and query safety are entirely the integrator's responsibility. Always check for blank values and use bound parameters or query-builder methods instead of whereRaw interpolation. Casting IDs and dates to the correct type prevents unexpected matches.
- Does the input filter respect Nova resource authorization and policies?
- The filter only modifies the query handed to it, so it does not bypass Nova's resource authorization by itself. That said, whatever you return from apply() determines which rows can appear, so avoid dropping constraints the resource depends on. Test filtered results against your policy expectations before shipping.
- Is nova-input-filter actively maintained, and what are the alternatives?
- Adoption signals are weak: roughly two dozen GitHub stars, no dependents, and a single-maintainer ecosystem, with no test coverage documented. Treat it as replaceable tooling rather than a platform bet, and confirm whether the current tag needs a Node build for assets. Because the apply() override is small, an in-house replacement is roughly a day of engineering, which is the sensible fallback if the package stalls or a Nova upgrade breaks it.