You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:17:01