optimistdigital/nova-multiselect-filter

Laravel Nova 的多选过滤器。

4.0.8 2023-07-24 08:40 UTC

README

Latest Version on Packagist Total Downloads

Laravel Nova 扩展包为 Nova 过滤器添加了多选功能。

要求

  • php: >=7.2
  • laravel/nova: ^4.0

功能

  • 多选
  • 单选
  • 分组选择
  • 搜索

截图

多选

Multiselect

分组选择

Groupselect

安装

通过 Composer 在 Laravel Nova 项目中安装此包

composer require outl1ne/nova-multiselect-filter

使用方法

当将 Filter 类切换为 MultiselectFilter 时可以使用此过滤器。

use Outl1ne\NovaMultiselectFilter\MultiselectFilter;

class BooksByAuthorFilter extends MultiselectFilter
{
    public function apply(Request $request, $query, $value)
    {
        return $query->whereHas('books', function ($query) use ($value) {
            $query->whereIn('author_id', $value);
        });
    }

    public function options(Request $request)
    {
        return Authors::all()->pluck('name', 'id');
    }
}

选项组

支持选项组。它们的语法与 Laravel 的选项组语法 相同。

在这个例子中(来自 Nova 文档),所有值都按 group 键分组

    public function options(Request $request)
    {
        return [
          'cat' => ['label' => 'Cat', 'group' => 'Pets'],
          'dog' => ['label' => 'Dog', 'group' => 'Pets'],
          'eagle' => ['label' => 'Eagle', 'group' => 'Birds'],
          'parrot' => ['label' => 'Parrot', 'group' => 'Birds'],
        ]
    }

选项

您可以通过使用选项名称作为函数将可能的选项传递给过滤器,例如 ->placeholder('选择花生')

本地化

可以使用以下发布命令发布翻译文件

php artisan vendor:publish --provider="Outl1ne\NovaMultiselectFilter\FieldServiceProvider" --tag="translations"

然后您可以根据需要编辑字符串。

致谢

此包受到了 klepak/nova-multiselect-filter 的启发

许可证

此项目是开源软件,受 MIT 许可证 许可。