bangnokia/filament-radio-card

为 Filament 定制的卡片格式单选组

v0.2.2 2023-12-08 19:27 UTC

This package is auto-updated.

Last update: 2024-09-09 06:41:51 UTC


README

这是一个为 Filament 表单定制的输入,而不是无聊的单选按钮,您可以使用图标来显示它们。这个想法来源于我的产品 ping2.me,用于选择聊天服务提供商。

安装

composer require bangnokia/filament-radio-card

用法

例如,您有一个枚举类,它实现了 Filament 的 HasIcon 特性

use Filament\Support\Contracts\HasColor;
use Filament\Support\Contracts\HasIcon;
use Filament\Support\Contracts\HasLabel;

enum BotProvider: string implements HasLabel, HasIcon
{
    case Telegram = 'telegram';
    case Discord =  'discord';
    case Slack = 'slack';

    public function getLabel(): ?string
    {
        return $this->name;
    }

    public function getIcon(): ?string
    {
        return match ($this) {
            self::Telegram => 'icon-telegram',
            self::Discord => 'icon-discord',
            self::Slack => 'icon-slack',
        };
    }
}

然后您可以在表单中使用它,如下所示

RadioCard::make('provider')
    ->options(BotProvider::class)
    ->default(BotProvider::Telegram)
    ->columns(count(BotProvider::cases()))