Filament 中的操作(Action)主要是处理点击事件(逻辑),比如按钮、链接的事件逻辑。
在 app/Filament/Admin/Resources/PostResource.php 中的 table 方法中已经看到过了:
->actions([
Tables\Actions\ViewAction::make(), // 添加查看按钮
Tables\Actions\EditAction::make(), // 编辑按钮,默认显示在每行的右侧
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([ // 批量操作选项
Tables\Actions\DeleteBulkAction::make(), // 批量删除
]),
]);
上面这些称之为列表操作(Table Action).
常用的几类:
Forms Actions:filamentphp.com/docs/3.x/fo…
Table Actions:filamentphp.com/docs/3.x/ta…
Infolist Actions:filamentphp.com/docs/3.x/in…
这几类中都预定义好的 Action, 直接使用即可,如果不能满足需求,则需要自定义,比如在列表中,需要有一个置顶操作:
->actions([
Tables\Actions\ViewAction::make(), // 查看按钮
Tables\Actions\EditAction::make(), // 编辑按钮,默认显示在每行的右侧,
Tables\Actions\Action::make('pinned') // 名称,要唯一
->label('置顶') // 显示的名称(标签)
->color('danger') // 颜色
->requiresConfirmation() // 显示确认框
->action(function () {}) // 操作逻辑
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([ // 批量操作选项
Tables\Actions\DeleteBulkAction::make(), // 批量删除
]),
]);
使用过程中要注意的是每个类别中引入的 action 命名空间的不同。