Зависимый список в Filament
Давайте соберём зависимый список. Второй выпадающий блок показывает другой набор строк, когда в первом выбран иной тип материала. Смотрим на /admin/posts/create.
Первый Select делают
живым. У второго метод
options читает выбор
через Get и возвращает
свой массив ключей и подписей.
Зададим формат и тему в
PostForm.php:
<?php
namespace App\Filament\Resources\Posts\Schemas;
use Filament\Forms\Components\Select;
use Filament\Schemas\Components\Utilities\Get;
use Filament\Schemas\Schema;
class PostForm
{
public static function configure(Schema $schema): Schema
{
return $schema->components([
Select::make('format')
->options([
'text' => 'Text',
'video' => 'Video',
])
->live(),
Select::make('topic')
->options(function (Get $get): array {
return match ($get('format')) {
'text' => [
'essay' => 'Essay',
'news' => 'News',
],
'video' => [
'tutorial' => 'Tutorial',
'review' => 'Review',
],
default => [],
};
}),
]);
}
}
?>
Сделайте так, чтобы второй список у работника менял пункты после выбора в первом.