Я создаю панель администратора с помощью FilamentPHP. У меня есть модель для категорий, и в этой модели я создал структуру с идентификатором, именем slug и parent_id.
Parent_id должен быть заполнен идентификатором другой категории, которая уже существует, создавая родительские и дочерние элементы.
Как я могу создать выбор с существующим списком категорий в методе создания категории? Как вы можете видеть ниже, я пытался использовать его в форме, но безуспешно.
public static function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\TextInput::make('parent_id'),
Select::make('categories')
->relationship('categories', 'name')
->preload()
]);
}





Что-то вроде этого должно работать.
public static function form(Form $form): Form
{
$categories = Category::all();
$options = [];
foreach ($categories as $category) {
$options[$category->id] = $category->name;
}
return $form
->schema([
Forms\Components\TextInput::make('name')
->required()
->maxLength(255),
Forms\Components\TextInput::make('parent_id'),
Select::make('categories')
->options($options) // Set select options to list of categories
]);
}
Мне удалось сделать то, что мне было нужно, скажем так, более элегантно! и я хочу оставить в качестве примера.
Select::make('parent_id')
->options(Category::query()->pluck('name', 'id'))
->preload()