在Filament的Repeater组件中访问父级Schema字段值
在Filament Repeater组件中访问外部字段值的解决方案
在Repeater内部直接用$get('field_1')拿不到外部字段的值,因为Repeater的字段处于嵌套作用域,默认$get的上下文是当前Repeater条目。得通过相对路径层级跳转来访问外部顶级字段:
修正后的代码示例:
return $form->schema([ Select::make('field_1')->reactive()->options(['a','b','c']), Repeater::make('repeater_1')->schema([ TextInput::make('field_2')->default(fn (Closure $get) => $get('../../field_1')), ]), ]);
原理说明
- Repeater的每个条目数据嵌套在
repeater_1数组下,从Repeater内部字段往上跳两级(../../)才能回到表单顶级作用域,从而获取field_1的值。 - 保留
field_1的reactive()设置,外部选择器值变化时,Repeater内的field_2默认值会实时同步更新。
内容的提问来源于stack exchange,提问作者LIGHT
相关产品推荐
相关产品推荐

