digital-creative/nova-slider-filter

A Laravel Nova 过滤器,用于选择最小/最大值之间的范围。

资助包维护!
milewski

安装次数: 45,479

依赖者: 0

建议者: 0

安全性: 0

星标: 13

关注者: 3

分支: 3

开放问题: 1

语言:Vue

v1.0.1 2023-10-02 07:45 UTC

This package is auto-updated.

Last update: 2024-08-28 10:44:29 UTC


README

Latest Version on Packagist Total Downloads License

A Laravel Nova 过滤器,用于选择最小/最大值之间的范围。

安装

您可以通过 composer 安装此包

composer require digital-creative/nova-slider-filter

基本用法

创建一个过滤器,像往常一样,并扩展 DigitalCreative\SliderFilter\SliderFilter

use DigitalCreative\SliderFilter\SliderFilter;

class MyFilter extends SliderFilter {

    public function apply(NovaRequest $request, $query, $values)
    {
        // $values will be an array when using ->range() and int when using ->single()
    }
    
}

然后在您的资源类中的过滤器方法内像往常一样使用它

class ExampleNovaResource extends Resource {

    public function filters(NovaRequest $request): array
    {
        return [
            MyFilter::make()->single(min: 0, max: 100),
        ];
    }

}

调用 ->range() 方法将渲染一个带有两个(或更多)滑块的滑块,而调用 single() 方法将渲染一个带有单个滑块的滑块。

class ExampleNovaResource extends Resource {

    public function filters(NovaRequest $request): array
    {
        return [
            MyFilter::make()
                ->range(0, 500, 300)
                ->label('${value}')
                
            MyFilter::make()
                ->single(min: 0, max: 500)
                ->label('${value}')
        ];
    }

}

您还可以通过使用 ->marks() 方法在滑块上设置标记。该方法接受一个键值对数组,其中键是标记的值,值是要显示的标签。

class ExampleNovaResource extends Resource {

    public function filters(NovaRequest $request): array
    {
        return [
            MyFilter::make()
                ->single(0, 100)
                ->marks([
                    '0' => '🌑',
                    '50' => '🌓',
                    '100' => '🌕'
                ])
        ];
    }

}

⭐️ 展示您的支持

如果此项目对您有帮助,请给一个 ⭐️!

您可能还会喜欢的其他包

许可协议

MIT许可协议(MIT)。有关更多信息,请参阅许可文件