Delete action
Overview
Filament includes a prebuilt action that is able to delete Eloquent records. When the trigger button is clicked, a modal asks the user for confirmation. You may use it like so:
use Filament\Actions\DeleteAction;
DeleteAction::make()
->record($this->post)
If you want to delete table rows, you can use the Filament\Tables\Actions\DeleteAction
instead, or Filament\Tables\Actions\DeleteBulkAction
to delete multiple at once:
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(),
// ...
]),
]);
}
Redirecting after deleting
You may set up a custom redirect when the form is submitted using the successRedirectUrl()
method:
DeleteAction::make()
->successRedirectUrl(route('posts.list'))
Customizing the delete notification
When the record is successfully deleted, a notification is dispatched to the user, which indicates the success of their action.
To customize the title of this notification, use the successNotificationTitle()
method:
DeleteAction::make()
->successNotificationTitle('User deleted')
You may customize the entire notification using the successNotification()
method:
use Filament\Notifications\Notification;
DeleteAction::make()
->successNotification(
Notification::make()
->success()
->title('User deleted')
->body('The user has been deleted successfully.'),
)
To disable the notification altogether, use the successNotification(null)
method:
DeleteAction::make()
->successNotification(null)
Lifecycle hooks
You can use the before()
and after()
methods to execute code before and after a record is deleted:
DeleteAction::make()
->before(function () {
// ...
})
->after(function () {
// ...
})