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