簡體   English   中英

FilamentPHP - 如何在同一模式中創建關系

[英]FilamentPHP - How create a relationship in the same modal

我正在使用 FilamentPHP 創建一個管理面板。 我有一個 model 用於類別,在這個 model 中,我創建了具有 id、slug 名稱和 parent_id 的結構。

parent_id 填入另一個已經存在的類的ID,創建父類和子類。

如何在類別創建方法中使用現有類別列表創建 select? 正如您在下面看到的,我嘗試在表單中使用它但沒有成功。

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM