# Make
Наследует
Select
* имеет те же возможности
Работает так же как и поле Select, но в качестве options принимает Enum.
Атрибуту модели необходим EnumCast.
use MoonShine\Fields\Enum; //... public function fields(): array{ return [ Enum::make('Status') ->attach(StatusEnum::class) ];} //...
# Вывод значений
toString
Метод toString()
, реализованный в Enum,
позволяет задать значение для вывода.
namespace App\Enums; enum StatusEmun: string{ case NEW = 'new'; case DRAFT = 'draft'; case PUBLIC = 'public'; public function toString(): ?string { return match ($this) { self::NEW => 'New', self::DRAFT => 'Draft', self::PUBLIC => 'Public', }; }}
getColor
Если в Enum реализован метод getColor()
,
то в preview поле отобразиться в виде значка определенного цвета.
Доступные цвета:
primary secondary success warning error info
purple pink blue green yellow red gray
namespace App\Enums; enum StatusEmun: string{ case NEW = 'new'; case DRAFT = 'draft'; case PUBLIC = 'public'; public function getColor(): ?string { return match ($this) { self::NEW => 'info', self::DRAFT => 'gray', self::PUBLIC => 'success', }; }}