webbingbrasil / filament-advancedfilter
filament后台的高级筛选组件。
v3.0.1
2024-01-02 12:04 UTC
Requires
- php: ^8.0
- filament/filament: ^3.0.0
- spatie/laravel-package-tools: ^1.9.2
README
一组易于使用的带有子句条件的筛选器,用于Filament
注意 对于 Filament 2.x,请使用 2.x 分支
安装
通过composer安装此包(需要filament >= 3.x)
composer require webbingbrasil/filament-advancedfilter "^3.0"
可选:您可以发布翻译文件
php artisan vendor:publish --tag="filament-advancedfilter-translations"
可用筛选器
布尔筛选器
根据布尔列筛选记录
use Webbingbrasil\FilamentAdvancedFilter\Filters\BooleanFilter; BooleanFilter::make('is_active')
在某些情况下,您可能有一个 nullable
列,布尔筛选器可以以不同的方式处理null值
- 将null视为未知
- 将null视为真
- 将null视为假
默认情况下,nulls
被视为未知且被隐藏
BooleanFilter::make('is_active')->nullsAreUnknown(); BooleanFilter::make('is_active')->nullsAreTrue(); BooleanFilter::make('is_active')->nullsAreFalse(); BooleanFilter::make('is_active')->showUnknowns(); BooleanFilter::make('is_active')->hideUnknowns();
日期筛选器
根据日期/时间戳列筛选记录
use Webbingbrasil\FilamentAdvancedFilter\Filters\DateFilter; DateFilter::make('published_at')
此筛选器允许用户在以下条件下搜索记录
-
等于/不等于用户的输入
-
在或早于/晚于用户的输入
-
大于/小于用户的输入
用户可以选择在 未来/过去 的 时间间隔(天、周、月、年),例如
- 现在起3天以上
- 6个月前
- 现在起5周以内
- 6天前
- 1年前
-
介于用户输入之间
-
已设置/未设置
数字筛选器
根据数字列筛选记录
use Webbingbrasil\FilamentAdvancedFilter\Filters\NumberFilter; NumberFilter::make('quantity')
此筛选器允许用户在以下条件下搜索记录
- 等于/不等于用户的输入
- 在或早于/晚于用户的输入
- 大于/小于用户的输入
- 介于用户输入之间
- 已设置/未设置
文本筛选器
根据文本列筛选记录
use Webbingbrasil\FilamentAdvancedFilter\Filters\TextFilter; TextFilter::make('name')
此筛选器允许用户在以下条件下搜索记录
- 等于/不等于用户的输入
- 以/不以用户的输入开头
- 以/不以用户的输入结尾
- 包含/不包含用户的输入
- 已设置/未设置
设置默认子句
您可以为任何筛选器设置默认子句条件,例如
use Webbingbrasil\FilamentAdvancedFilter\Filters\TextFilter; use Webbingbrasil\FilamentAdvancedFilter\Filters\BooleanFilter; FilamentAdvancedFilter\Filters\TextFilter::make('brand') ->relationship('brand', 'name') ->default(FilamentAdvancedFilter\Filters\TextFilter::CLAUSE_CONTAIN); FilamentAdvancedFilter\Filters\BooleanFilter::make('is_visible') ->default(FilamentAdvancedFilter\Filters\BooleanFilter::CLAUSE_IS_FALSE);
启用子句标签
默认情况下,子句标签是禁用的,您可以通过调用enableClauseLabel
方法来启用它
use Webbingbrasil\FilamentAdvancedFilter\Filters\TextFilter; FilamentAdvancedFilter\Filters\TextFilter::make('brand') ->enableClauseLabel()
字段包装器
您可以更改筛选器字段的包装器,例如使用Group组件而不是Fieldset
use Webbingbrasil\FilamentAdvancedFilter\Filters\TextFilter; FilamentAdvancedFilter\Filters\TextFilter::make('brand') ->enableClauseLabel() ->wrapperUsing(fn () => Forms\Components\Group::make())
字段防抖
您可以为筛选器字段设置自定义防抖时间,例如在应用筛选器之前等待700毫秒
use Webbingbrasil\FilamentAdvancedFilter\Filters\TextFilter; FilamentAdvancedFilter\Filters\TextFilter::make('brand') ->debounce(700)
默认的防抖时间是500毫秒。
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件