PHP code example of tourze / easy-admin-enum-field-bundle

1. Go to this page and download the library: Download tourze/easy-admin-enum-field-bundle library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

tourze / easy-admin-enum-field-bundle example snippets




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();
}



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



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,
        };
    }
}



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);
    }
}

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'
        };
    });