Delete action
概述
Filament 包含一个可以删除 Eloquent 记录的预制 Action。点击触发按钮后,会打开让用户确认的模态框。你可以这样使用:
use Filament\Actions\DeleteAction;
DeleteAction::make()
->record($this->post)
如果你想要删除表格行,你可以使用 Filament\Tables\Actions\DeleteAction
替代,或者使用 Filament\Tables\Actions\DeleteBulkAction
实现批量删除:
use Filament\Tables\Actions\BulkActionGroup;
use Filament\Tables\Actions\DeleteAction;
use Filament\Tables\Actions\DeleteBulkAction;
use Filament\Tables\Table;
public function table(Table $table): Table
{
return $table
->actions([
DeleteAction::make(),
// ...
])
->bulkActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
// ...
]),
]);
}
删除后重定向
使用 successRedirectUrl()
方法,你可以对表单提交后进行重定向设置:
DeleteAction::make()
->successRedirectUrl(route('posts.list'))
自定义删除通知
记录删除成功后,会派送通知给用户,说明操作成功:
要自定义通知标题,请使用 successNotificationTitle()
方法:
DeleteAction::make()
->successNotificationTitle('User deleted')
你也可以使用 successNotification()
方法,自定义整个通知:
use Filament\Notifications\Notification;
DeleteAction::make()
->successNotification(
Notification::make()
->success()
->title('User deleted')
->body('The user has been deleted successfully.'),
)
要完全禁用通知,请使用 successNotification(null)
方法:
DeleteAction::make()
->successNotification(null)
生命周期钩子
你可以使用 before()
和 after()
方法,在记录删除之前及之后执行代码:
DeleteAction::make()
->before(function () {
// ...
})
->after(function () {
// ...
})