erikaraujo / filament-enum-attributes
为枚举提供特性,以便在 Filament 枚举中使用属性而非 get 方法
1.0.0
2024-01-30 23:57 UTC
Requires
- php: ^8.1
Requires (Dev)
- larastan/larastan: ^2.8
- laravel/pint: ^1.13
- orchestra/testbench: ^8.18
- phpunit/phpunit: ^10.5
README
允许在 Filament 枚举中使用属性的枚举特性。
安装
您可以通过 composer 安装此包
composer require erikaraujo/filament-enum-attributes
用法
首先,您需要在 Filament 枚举类中导入并使用 Enum
特性
use HasColorAttribute; use HasIconAttribute; use HasLabelAttribute; use HasDescriptionAttribute;
或者,您也可以通过以下方式导入所有特性
use HasFilamentEnumAttributes;
现在,您不再需要按照文档中的说明编写默认的 filament get
方法(getColor()
、getIcon()
和 getLabel()
),您可以直接在枚举情况中使用 #[Color]
、#[Icon]
和 #[Label]
属性。
请参阅以下示例
enum Suit: string implements HasColor, HasIcon, HasLabel, HasDescription { use HasColorAttribute; use HasIconAttribute; use HasLabelAttribute; use HasDescriptionAttribute; #[Color(['gray', 'warning'])] case Clubs = 'clubs'; #[ Color('warning'), Label('Shine bright'), ] case Diamonds = 'diamonds'; #[Color('gray')] #[Label('Club')] #[Icon('heroicon-o-heart')] case Hearts = 'hearts'; #[Description('The upside down black heart.')] case Spades = 'spades';
确保已导入所有内容
use ErikAraujo\FilamentEnumAttributes\Attributes\Color; use ErikAraujo\FilamentEnumAttributes\Attributes\Icon; use ErikAraujo\FilamentEnumAttributes\Attributes\Label; use ErikAraujo\FilamentEnumAttributes\Concerns\HasColorAttribute; use ErikAraujo\FilamentEnumAttributes\Concerns\HasIconAttribute; use ErikAraujo\FilamentEnumAttributes\Concerns\HasLabelAttribute; use ErikAraujo\FilamentEnumAttributes\Concerns\HasDescriptionAttribute;
如果您想使用 laravel 辅助函数进行字符串翻译,您还可以向 Label
和 Description
属性传递一个布尔型的 translate
参数。因此,以下
#[Description('descriptions.suits.spades')]
将被评估为 __('descriptions.suits.spades')
。
测试
要执行测试,只需运行 composer 脚本
composer test
如果您想检查覆盖率,请运行
composer test:coverage:html
贡献
请参阅 CONTRIBUTING 以获取详细信息。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。