Варианты из перечисления в Filament
Давайте возьмём варианты из перечисления. Статус поста хранят в одном типе PHP, а список на форме строят из его кейсов. Смотрим на /admin/posts/create.
У Select метод
options принимает
имя класса перечисления.
Filament сам соберёт ключи
и подписи из кейсов.
Подключим статус в
PostForm.php:
<?php
namespace App\Filament\Resources\Posts\Schemas;
use App\Enums\Status;
use Filament\Forms\Components\Select;
use Filament\Schemas\Schema;
class PostForm
{
public static function configure(Schema $schema): Schema
{
return $schema->components([
Select::make('status')
->options(Status::class),
]);
}
}
?>
Само перечисление зададим
со строковыми значениями
draft и published:
<?php
namespace App\Enums;
enum Status: string
{
case Draft = 'draft';
case Published = 'published';
}
?>
Соберите список статуса работника из перечисления PHP.