如何将依赖的输入字段变量传递给filament中的recordSelectOptionsQuery()

问题描述 投票:0回答:1

我正在尝试根据从另一个字段获取的输入来确定选项的范围。我如何在这个

recordSelctOptionQuery
中传递这个变量?

recordSelectOptionsQuery(
    fn (Builder $query) => $query->whereBelongsTo(
        Item::find('id_selected_from_a_dependent_filed')
))

参考: https://filamentphp.com/docs/2.x/admin/resources/relation-managers#attaching-and-detaching-records

php laravel laravel-livewire laravel-filament
1个回答
0
投票

要根据另一个选择字段的值动态调整一个选择字段的选项范围,您可以使用 Livewire 的反应性。

灯丝文档:反应性基础知识

class YOURCLASSE extends Resource

public $selectedCategoryId;

protected function form(Form $form)
{
    return $form->schema([
        Select::make('category_id')
            ->options(Category::all()->pluck('name', 'id'))
            ->reactive()
            ->afterStateUpdated(fn ($state) => $this->selectedCategoryId = $state),

        Select::make('sub_category_id')
            ->options(function () {
                return $this->selectedCategoryId ? SubCategory::where('category_id', $this->selectedCategoryId)->pluck('name', 'id') : [];
            }),
    ]);
}
© www.soinside.com 2019 - 2024. All rights reserved.