Actions
简介
Filament 表格可以使用 Action。Action 是添加到表格行末或表格头部或者 toolbar 上的按钮。比如,如果你想在表格头部添加"新建"记录的 Action,在每行中添加"编辑"和"删除" Action。批量 Action可以在记录选中时执行代码。另外,Action 也可以添加到表格列,这样该列中的每个单元格都是 action 的触发器。
强烈建议阅读自定义 Action 触发按钮 和 Action 模态框文档,去了解 Action 的全部功能。
记录 Action
Action 按钮可以渲染在每个表格行的末尾。你可以将其放到 $table->recordActions() 方法中:
use Filament\Tables\Table;
public function table(Table $table): Table
{
return $table
->recordActions([
// ...
]);
}
Action 可以使用静态的 make() 方法,传入唯一名称创建。
然后你可以传入函数到 action() 中执行任务,或者传入函数到 url() 中创建链接:
use App\Models\Post;
use Filament\Actions\Action;
Action::make('edit')
->url(fn (Post $record): string => route('posts.edit', $record))
->openUrlInNewTab()
Action::make('delete')
->requiresConfirmation()
->action(fn (Post $record) => $record->delete())
Action 上的所有方法都接受回调函数,在回调函数中你可以访问当前表格的 $record 记录:

将记录操作放到列前
默认情况下,表格中的记录操作会在每行的最后一个单元格中渲染。可以使用 position 参数将它们移动到列之前:
use Filament\Tables\Enums\RecordActionsPosition;
use Filament\Tables\Table;
public function table(Table $table): Table
{
return $table
->recordActions([
// ...
], position: RecordActionsPosition::BeforeColumns);
}

将记录操作放到复选框列前
默认情况下,表格中的记录操作会在每行的最后一个单元格中渲染。可以使用 position 参数将 它们移动到复选框列之前:
use Filament\Tables\Enums\RecordActionsPosition;
use Filament\Tables\Table;
public function table(Table $table): Table
{
return $table
->recordActions([
// ...
], position: RecordActionsPosition::BeforeCells);
}



