orchidsoftware / platform

Orchid is a @laravel package that allows for rapid application development of back-office applications, admin/user panels, and dashboards.
https://orchid.software
MIT License
4.26k stars 631 forks source link

feat: add option to customize display name for select based on enums #2776

Closed czernika closed 6 months ago

czernika commented 6 months ago

Proposed Changes

This PR gives option to change displayed values for Select Field based on Enum

// Enum
enum RoleNames: string
{
    case Admin = 'admin';
    case User = 'user';

    public function label(): string
    {
        return match ($this) {
            self::Admin => 'Administrator',
            self::User => 'Regular user',
        };
    }
}

// Layout
Select::make('fromEnum')
   ->fromEnum(RoleNames::class, 'label'), // pass second option as method name

This will generate values based on label method

Снимок экрана от 2023-12-20 12-10-04