awcodes / filament-badgeable-column
Filament 表格列,用于添加和预添加徽章。
v2.3.2
2024-03-07 20:37 UTC
Requires
- php: ^8.1
- filament/filament: ^3.0
- spatie/laravel-package-tools: ^1.15
Requires (Dev)
- laravel/pint: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-06 16:10:06 UTC
README
使用 Filament Badgeable Column,您可以为您的列添加和预添加徽章。
安装
您可以通过 composer 安装此包
composer require awcodes/filament-badgeable-column
为了与 Filament 的主题方法保持一致,您需要使用自定义主题来使用此插件。
注意 如果您尚未设置自定义主题并正在使用面板,请首先按照 Filament 文档 中的说明操作。以下适用于面板包和独立的表单包。
将插件的视图添加到您的 tailwind.config.js
文件中。
content: [ '<path-to-vendor>/awcodes/filament-badgeable-column/resources/**/*.blade.php', ]
用法
use Awcodes\FilamentBadgeableColumn\Components\Badge; use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn; return $table ->columns([ BadgeableColumn::make('name') ->suffixBadges([ Badge::make('hot') ->label('Hot') ->color('danger') ->visible(fn(Model $record) => $record->qty < 5), ]) ->prefixBadges([ Badge::make('brand_name') ->label(fn(Model $record) => $record->status) ->color(function(Model $record) { return match ($record->status) { 'active' => 'success', 'inactive' => 'danger', default => 'warning', }; }) ]) ]);
如果您想根据动态数据定义徽章数组,您也可以通过闭包定义数组。闭包应返回一个类似于上面的 Badge
对象数组。
以下示例假设记录具有名为 topics
的 BelongsToMany
关系,并显示如何显示每个主题名称作为徽章。
use Awcodes\FilamentBadgeableColumn\Components\Badge; use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn; return $table ->columns([ BadgeableColumn::make('title') ->suffixBadges(function($record) { return $record->topics->map(function($topic) { return Badge::make($topic->name)->color($topic->color); }); }) ->searchable() ->sortable(), ]);
可徽章标签列
警告 可徽章标签列已被弃用,请使用
TextColumn
的badge()
方法。
徽章形状
如果您更喜欢更“圆润”的形状,可以使用 asPills()
方法设置徽章的形状。
use Awcodes\FilamentBadgeableColumn\Components\Badge; use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn; return $table ->columns([ BadgeableColumn::make('name') ->asPills() ]);
分隔符
列文本和徽章之间的默认分隔符是 '—'。如果您想使用不同的分隔符,请使用 separator()
方法设置要使用的字符作为分隔符。
use Awcodes\FilamentBadgeableColumn\Components\Badge; use Awcodes\FilamentBadgeableColumn\Components\BadgeableColumn; return $table ->columns([ BadgeableColumn::make('name') ->separator(':') ]);
变更日志
请参阅 变更日志 了解最近更改的详细信息。
贡献
请参阅 贡献指南 了解详细信息。
安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可协议
MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件。