Skip to content

dcasia/nova-range-input-filter

Repository files navigation

Nova Range Input Filter

Latest Version on Packagist Total Downloads License

A Laravel Nova range input filter.

RangeInputFilter in Action

Installation

You can install the package via composer:

composer require digital-creative/nova-range-input-filter

Basic Usage

Create a filter as usual and extend the DigitalCreative\RangeInputFilter\RangeInputFilter class

use DigitalCreative\RangeInputFilter\RangeInputFilter;

class MyFilter extends RangeInputFilter {

    public function apply(NovaRequest $request, $query, $value)
    {
        $from = data_get($value, 'from');
        $to = data_get($value, 'to');
    }

}

and use it as usual on the filters methods within your resource class:

class ExampleNovaResource extends Resource {

    public function filters(NovaRequest $request): array
    {
        return [
            MyFilter::make()
        ];
    }

}

Options

The available options are straight forward:

class ExampleNovaResource extends Resource {

    public function filters(NovaRequest $request): array
    {
        return [
            MyFilter::make()
                ->dividerLabel('<>') // control the divider label in between the inputs
                ->inputType('week') // supports any html input type
                ->placeholder('From', 'To') // control the placeholder of the inputs
                ->fromAttributes([ 'min' => 0 ]) // some inputs type like number accepts more attributes like min/max/step etc..
                ->toAttributes([ 'max' => 100 ]) 
        ];
    }

}

Due to the size limitation of the native nova filter box some input types may not look as expected, for this reason you can use Nova Mega Filter package instead which is a drop-in replacement for the native filter box.

⭐️ Show Your Support

Please give a ⭐️ if this project helped you!

Other Packages You Might Like

License

The MIT License (MIT). Please see License File for more information.