degecko / nova-filters-summary
一个 Laravel Nova 卡片,显示资源或透镜的活跃过滤器的摘要。
2.0.3
2022-11-03 12:21 UTC
Requires
- php: >=7.1.0
- laravel/nova: ^4.0
README
一个用于 Laravel Nova 的自定义卡片组件,用于显示特定资源或透镜的活跃过滤器摘要。
默认预览
堆叠预览
安装
使用 Composer
对于 Nova 4,使用当前版本。对于旧版本,使用此包的 v1。
Nova v4
composer require degecko/nova-filters-summary
Nova v1-3
composer require degecko/nova-filters-summary:^1.1.0
使用方法
将其添加到 Nova 资源或透镜内部返回的 cards
方法数组中。
<?php
namespace App\Nova;
use Degecko\NovaFiltersSummary\FiltersSummary;
use Illuminate\Http\Request;
class Product extends Resource
{
// Your setup.
public function cards(Request $request)
{
return [
FiltersSummary::make(),
];
}
}
堆叠
要使用堆叠模板,请使用 FiltersSummary::make()->stacked()
。
翻译
要翻译使用的三个单词:活跃、过滤和过滤器,只需使用 Laravel $lang.json
文件进行翻译。
自定义过滤摘要解析器
该插件知道如何显示默认 Nova 过滤器的信息,但您可能需要使用自定义过滤器。在这种情况下,您可能需要为过滤摘要创建自定义模板。
例如:我有一个允许用户选择特定列的数值范围的自定义过滤器。您可以将其用于选择价格在 5 到 20 美元之间的产品。
现在,因为这个过滤器映射到一个像这样的对象
{ from: 5, to: 20 }
摘要将简单地列出其值,这并不很美观。
因此,如果您想自定义它,您需要为该过滤器创建一个自定义摘要解析器。
设置很简单
- 在
Nova.filtersSummaryResolvers
内部定义一个与您的过滤器组件同名的函数 - 该函数将接收过滤器本身作为参数
- 返回过滤摘要
我通常在过滤器的 index.js
文件内创建定义,看起来像这样
Nova.booting((Vue, router, store) => {
Vue.component('numeric-range-filter', require('./NumericFilter').default)
Nova.filtersSummaryResolvers['numeric-range-filter'] = filter => {
return [filter.currentValue.from || '<em>•</em>', filter.currentValue.to || '<em>•</em>'].join(' — ')
}
})