gekich/nested-tree-filter

一个 Laravel Nova 嵌套树过滤器。

1.0.0 2021-11-18 15:05 UTC

This package is auto-updated.

Last update: 2024-09-18 21:45:32 UTC


README

为 Laravel Nova 定制的嵌套树过滤器。

Example usage

此过滤器使用 kalnoy/nestedset 包提供的树。

此过滤器底层使用 riophae/vue-treeselect。

安装

假设您需要过滤与嵌套 Category 模型相关的 Product

首先,需要使用 gekich/nested-tree-filter

composer require gekich/nested-tree-filter

使用 nova:filter 创建新的过滤器,例如

php artisan nova:filter CategoryFilter

使您新创建的类扩展 Gekich\NestedTreeFilter\NestedTreeFilter

use Gekich\NestedTreeFilter\NestedTreeFilter;

class CategoryFilter extends NestedTreeFilter 
{
//
}

从新创建的类 CategoryFilter 中移除所有代码,并设置

class CategoryFilter extends NestedTreeFilter
{
    public $filterModel = \App\Category::class; // - nested tree model 
    public $filterRelation = 'categories'; // - relation that filter uses
    public $name = 'Categories filter'; // - filter name
    public $idKey = 'id'; // - id column
    public $labelKey = 'name'; // - label column name
}

还有占位符选项

    public $placeholder = 'Select...'; 

以及多选选项

    public $multiple = true;

使用方法

在 Laravel nova Product 资源中包含您在安装期间创建的过滤器

use App\Nova\Filters\CategoryFilter;
   
class Product extends Resource
{
..
    public function filters(Request $request)
    {
        return [
            CategoryFilter::make()
        ];
    }

过滤器已准备好使用。您可以将此过滤器应用于在 $filterRelation 中设置的资源关系

贡献

请随意提出更改建议,要求新功能或自行修复错误。

希望此包对您有所帮助。

许可

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