An input filter for Laravel Nova
optimistdigital/nova-input-filter is a Laravel package for an input filter for laravel nova.
It currently has 24 GitHub stars and 573.457 downloads on Packagist (latest version 3.0.0).
Install it with composer require optimistdigital/nova-input-filter.
Discover more Laravel packages by optimistdigital
or browse all Laravel packages to compare alternatives.
Last updated
This Laravel Nova package allows you to create simple input filters.
php: >=8.1laravel/nova: ^5.0
Install the package in to a Laravel app that uses Nova via composer:
composer require outl1ne/nova-input-filter
Accepts an array of columns as first parameter and filter name as second parameter. Can optionally pass in multiple
columns: ['email', 'id'], similarly to nova's search.
use Outl1ne\NovaInputFilter\InputFilter;
use Laravel\Nova\Http\Requests\NovaRequest;
// ..
public function filters(NovaRequest $request): array
{
return [
InputFilter::make()->forColumns(['email'])->withName('Email'),
// Or
InputFilter::make(['email'], 'email'),
];
}
Out of the box, InputFilter works exactly like Nova's search field. If you wish to change it, you can extend
the InputFilter class and override apply() function.
use Outl1ne\NovaInputFilter\InputFilter;
use Illuminate\Contracts\Database\Eloquent\Builder;
use Laravel\Nova\Http\Requests\NovaRequest;
class ExtendedInputFilter extends InputFilter
{
public function apply(NovaRequest $request, Builder $query, mixed $value)
{
return $query->where('email', 'like', "%$value%");
}
}
Nova Input Filter is open-sourced software licensed under the MIT license.