Laravel Filament批量操作:如何设置表单并获取表单值
解决Filament批量操作模态框表单值获取问题
要获取批量操作模态框中表单的输入值,只需在action闭包中添加第二个参数$data,这个参数会自动携带表单的所有输入数据。同时注意表单组件需要正确返回(原代码中form闭包缺少return语句)。
修正后的代码如下:
<?php $table->bulkActions([ \Filament\Tables\Actions\BulkAction::make('my_action') ->requiresConfirmation() ->form(function (Collection $records) { // 必须返回表单组件数组 return [ \Filament\Forms\Components\TextInput::make('name') ->required() // 可选:添加必填验证,确保输入有效 ]; }) ->action(function (Collection $records, array $data) { // 通过$data['name']获取输入框的内容 $inputName = $data['name']; // 示例逻辑:遍历选中记录并使用表单输入值 foreach ($records as $record) { // 比如更新记录的对应字段 $record->update(['name' => $inputName]); } }); ]);
关键说明
$data是关联数组,键名与表单组件make()方法中定义的名称一一对应(此处为name)- 表单组件必须包裹在数组中并返回,否则模态框无法渲染表单
- 可根据业务需求为表单组件添加验证规则,避免无效输入
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

