codicastudio/ mega-filter
一个随机的Codica Studio包。
1.0.0
2020-09-25 01:53 UTC
Requires
- php: ^7.4 || ^8.0
This package is auto-updated.
Last update: 2024-09-25 13:42:10 UTC
README
此包允许您控制nova资源上显示的列和过滤器。
安装
您可以通过composer安装此包
composer require digital-creative/nova-mega-filter
基本用法
基本演示展示了该字段的强大功能
use DigitalCreative\MegaFilter\MegaFilter; use DigitalCreative\MegaFilter\HasMegaFilterTrait; use DigitalCreative\MegaFilter\Column; class ExampleNovaResource extends Resource { use HasMegaFilterTrait; // Important!! public function cards(Request $request) { return [ MegaFilter::make([ 'filters' => [ new DateOfBirthFilter(), new UserTypeFilter() ], 'columns' => [ Column::make('Customer Name', 'name')->addFilter(new ActiveFilter()), Column::make('Assets'), Column::make('Payments') ] ]) ]; } }
列
列反映了您表资源上通常显示的每一列,但是您可以自由地让用户能够切换开启或关闭
use DigitalCreative\MegaFilter\Column; use DigitalCreative\MegaFilter\HasMegaFilterTrait; use DigitalCreative\MegaFilter\MegaFilter; MegaFilter::make([ 'columns' => [ Column::make($label), Column::make($label, $attribute), Column::make($label, $attribute, $filters), new Column($label, $attribute, $filters), ], ])
您可以在启用所需的列时添加额外的过滤器
MegaFilter::make([ 'columns' => [ Column::make('Gender')->addFilter(new GenderFilter()) ], ])
如果您想始终显示过滤器,请使用下面的'filters'选项
您还可以定义用户不能切换的列,并将它们始终显示在表资源上
MegaFilter::make([ 'columns' => [ Column::make('Name')->permanent() ], ])
当使用->permanent()
时,列可能定义的每个过滤器也将存在
其他列方法包括使列默认选中
MegaFilter::make([ 'columns' => [ Column::make('Name')->checked() // Checked by default ], ])
过滤器
filters
键接受默认Nova过滤器类或第三方类的任何实例数组。
MegaFilter::make([ 'filters' => [ new BirthdayFilter(), new UserTypeFilter(), new GenderFilter(), ], ])
操作
操作将使用相同的Nova操作机制
MegaFilter::make([ 'actions' => [ new ExportClientAsExcell(), ], ])
如果您定义了多个操作,将显示一个下拉菜单
选定的列也将提供给您的操作,您可以直接从请求中访问它们
public function handle(ActionFields $fields, Collection $models) { $columns = json_decode(request()->input('columns')); dd($columns); }
设置
设置键是可选的,因为它包含一些好的默认值,但您可以随时覆盖它以满足您的需求。
MegaFilter::make([ 'settings' => [ /** * Tailwind width classes: w-full w-1/2 w-1/3 w-1/4 etc. */ 'columnsWidth' => 'w-1/4', 'filtersWidth' => 'w-1/2', /** * The default state of the main toggle buttons */ 'columnsActive' => false, 'filtersActive' => true, 'actionsActive' => true, /** * Labels */ 'headerLabel' => 'Menu', 'columnsLabel' => 'Columns', 'filtersLabel' => 'Filters', 'actionsLabel' => 'Actions', 'columnsSectionTitle' => 'Additional Columns', 'filtersSectionTitle' => 'Filters', 'actionsSectionTitle' => 'Actions', 'columnsResetLinkTitle' => 'Reset Columns', 'filtersResetLinkTitle' => 'Reset Filters', ], ])
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。