Поля

Enum

Создание

Расширяет Select

  • имеет те же функции

Работает так же, как поле Select, но принимает Enum в качестве опций.

Атрибуты модели требуют Enum Cast.

use MoonShine\Fields\Enum;
 
//...
 
public function fields(): array
{
return [
Enum::make('Status')
->attach(StatusEnum::class)
];
}
 
//...
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',
};
}
}
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',
};
}
}
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',
};
}
}

enum enum_dark