tourze/easy-admin-enum-field-bundle
Composer 安装命令:
composer require tourze/easy-admin-enum-field-bundle
包简介
A Symfony bundle that provides enhanced enum field support for EasyAdmin with automatic badge rendering and advanced display options
README 文档
README
A Symfony bundle that provides enhanced enum field support for EasyAdmin, with automatic badge rendering and advanced display options.
Features
- Enhanced enum field rendering with automatic badge support
- Seamless integration with PHP 8.1+ enums
- Automatic label generation from enum cases
- Customizable badge colors and styles
- Support for translatable enum labels
- Multiple choice selection capabilities
- Autocomplete widget support
- Native and expanded rendering modes
Installation
composer require tourze/easy-admin-enum-field-bundle
Dependencies
- PHP 8.1 or higher
- Symfony 6.4 or higher
- EasyAdmin Bundle 4.0 or higher
- tourze/enum-extra package
Quick Start
Basic Usage
<?php use Tourze\EasyAdminEnumFieldBundle\Field\EnumField; use App\Entity\StatusEnum; // In your EasyAdmin CrudController public function configureFields(string $pageName): iterable { yield EnumField::new('status') ->setEnumCases(StatusEnum::cases()) ->renderAsBadges(); }
Advanced Configuration
<?php use Tourze\EasyAdminEnumFieldBundle\Field\EnumField; // Custom badge mapping yield EnumField::new('priority') ->setEnumCases(PriorityEnum::cases()) ->renderAsBadges([ 'high' => 'danger', 'medium' => 'warning', 'low' => 'success' ]); // Multiple choice support yield EnumField::new('tags') ->setEnumCases(TagEnum::cases()) ->allowMultipleChoices() ->autocomplete();
Enum Interface Support
Your enums can implement the Labelable and BadgeInterface interfaces for enhanced functionality:
<?php use Tourze\EnumExtra\Labelable; use Tourze\EnumExtra\BadgeInterface; enum StatusEnum: string implements Labelable, BadgeInterface { case ACTIVE = 'active'; case INACTIVE = 'inactive'; case PENDING = 'pending'; public function getLabel(): string { return match ($this) { self::ACTIVE => 'Active', self::INACTIVE => 'Inactive', self::PENDING => 'Pending', }; } public function getBadge(): string { return match ($this) { self::ACTIVE => self::SUCCESS, self::INACTIVE => self::DANGER, self::PENDING => self::WARNING, }; } }
Configuration Options
Badge Types
Available badge types: success, warning, danger, info, primary, secondary, light, dark
Widget Types
native: Use native HTML select widgetautocomplete: Use autocomplete widget with search functionality
Display Options
renderExpanded(): Render as radio buttons or checkboxesescapeHtml(): Control HTML escaping in field valuesallowMultipleChoices(): Enable multiple selection
Advanced Usage
Custom Field Configurator
You can create custom field configurators to apply consistent enum field settings:
<?php use Tourze\EasyAdminEnumFieldBundle\Field\EnumField; class StatusFieldConfigurator { public static function create(string $propertyName): EnumField { return EnumField::new($propertyName) ->setEnumCases(StatusEnum::cases()) ->renderAsBadges([ 'active' => 'success', 'inactive' => 'danger', 'pending' => 'warning' ]) ->escapeHtml(false); } }
Dynamic Badge Configuration
Use callable for dynamic badge assignment:
yield EnumField::new('status') ->setEnumCases(StatusEnum::cases()) ->renderAsBadges(function(FieldDto $field) { $value = $field->getValue(); return match ($value) { StatusEnum::CRITICAL => 'danger', StatusEnum::HIGH => 'warning', default => 'info' }; });
Contributing
Please see CONTRIBUTING.md for details.
License
The MIT License (MIT). Please see License File for more information.
tourze/easy-admin-enum-field-bundle 适用场景与选型建议
tourze/easy-admin-enum-field-bundle 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.16k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 10 月 31 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 tourze/easy-admin-enum-field-bundle 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 tourze/easy-admin-enum-field-bundle 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 2.16k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 22
- 依赖项目数: 40
- 推荐数: 1
其他信息
- 授权协议: MIT
- 更新时间: 2025-10-31