awcodes/filament-badgeable-column

Filament 表格列,用于添加和预添加徽章。

v2.3.2 2024-03-07 20:37 UTC

README

Latest Version on Packagist Total Downloads

badgeable-column-og

使用 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 对象数组。

以下示例假设记录具有名为 topicsBelongsToMany 关系,并显示如何显示每个主题名称作为徽章。

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(),
    ]);

可徽章标签列

警告 可徽章标签列已被弃用,请使用 TextColumnbadge() 方法。

徽章形状

如果您更喜欢更“圆润”的形状,可以使用 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)。有关更多信息,请参阅 许可文件