37 lines
763 B
PHP
37 lines
763 B
PHP
<?php
|
|
|
|
namespace App\Enums;
|
|
|
|
trait EnumHasOptions
|
|
{
|
|
|
|
public static function options(): array
|
|
{
|
|
$options = [];
|
|
foreach (self::cases() as $case) {
|
|
$options[$case->value] = __("enums." . class_basename(self::class) . "." . $case->name);
|
|
}
|
|
return $options;
|
|
}
|
|
|
|
public static function values(): array
|
|
{
|
|
return array_column(self::cases(), 'value');
|
|
}
|
|
|
|
public static function fromName(string $name): self | null
|
|
{
|
|
foreach (self::cases() as $case) {
|
|
if ($case->name === $name) {
|
|
return $case;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static function keys(): array
|
|
{
|
|
return array_column(self::cases(), 'name');
|
|
}
|
|
}
|