Files
radicall/app/Enums/EnumHasOptions.php
T

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