optimistdigital / nova-input-filter
An input filter for Laravel Nova
Installs: 451 760
Dependents: 2
Suggesters: 0
Security: 0
Stars: 23
Watchers: 6
Forks: 18
Open Issues: 1
Requires
- php: >=8.1
- laravel/nova: ^5.0
Requires (Dev)
- laravel/nova-devtool: ^1.0.1
- laravel/pint: ^1.20
README
This Laravel Nova package allows you to create simple input filters.
Requirements
php: >=8.1
laravel/nova: ^5.0
Features
- Out of the box, works like an additional search field.
- Inline usage for simple use-cases.
Screenshots
Installation
Install the package in to a Laravel app that uses Nova via composer:
composer require outl1ne/nova-input-filter
Usage
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'), ]; }
Customizing
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%"); } }
Credits
License
Nova Input Filter is open-sourced software licensed under the MIT license.