公告: 旧版文档请移步 -> http://v2.laravel-filament.cn/docs

Languages

Version

Theme

Actions - 预制 Action

Restore action

概述

Filament 包含一个可以恢复已软删除的 Eloquent 记录的预制 Action。点击触发按钮后,会打开一个模态框要求用户确认。你可以这样使用:

use Filament\Actions\RestoreAction;
 
RestoreAction::make()
->record($this->post)

如果你想恢复表格行记录,请使用 Filament\Tables\Actions\RestoreAction 替换,或者使用 Filament\Tables\Actions\RestoreBulkAction 恢复多个记录:

use Filament\Tables\Actions\BulkActionGroup;
use Filament\Tables\Actions\RestoreAction;
use Filament\Tables\Actions\RestoreBulkAction;
use Filament\Tables\Table;
 
public function table(Table $table): Table
{
return $table
->actions([
RestoreAction::make(),
// ...
])
->bulkActions([
BulkActionGroup::make([
RestoreBulkAction::make(),
// ...
]),
]);
}

恢复后重定向

使用 successRedirectUrl() 方法,你可以对表单提交后进行重定向设置:

RestoreAction::make()
->successRedirectUrl(route('posts.list'))

自定义恢复通知

记录恢复成功后,会发送一个通知给用户,说明操作成功:

要自定义通知标题,请使用 successNotificationTitle() 方法:

RestoreAction::make()
->successNotificationTitle('User restored')

你也可以使用 successNotification() 方法,自定义整个通知:

use Filament\Notifications\Notification;
 
RestoreAction::make()
->successNotification(
Notification::make()
->success()
->title('User restored')
->body('The user has been restored successfully.'),
)

要完全禁用通知,请使用 successNotification(null) 方法:

RestoreAction::make()
->successNotification(null)

生命周期钩子

你可以使用 before()after() 方法,在记录删除之前及之后执行代码:

RestoreAction::make()
->before(function () {
// ...
})
->after(function () {
// ...
})
Edit on GitHub

Still need help? Join our Discord community or open a GitHub discussion