Skip to content

[액션.내장된액션] DeleteAction

개요

Filament에는 Eloquent 레코드를 삭제할 수 있는 미리 만들어진 액션이 포함되어 있습니다. 트리거 버튼을 클릭하면 모달이 사용자에게 확인을 요청합니다. 다음과 같이 사용할 수 있습니다:

php
use Filament\Actions\DeleteAction;

DeleteAction::make()
    ->record($this->post)

테이블 행을 삭제하려면 Filament\Tables\Actions\DeleteAction을 대신 사용할 수 있으며, 여러 개를 한 번에 삭제하려면 Filament\Tables\Actions\DeleteBulkAction을 사용할 수 있습니다:

php
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() 메서드를 사용하여 커스텀 리디렉션을 설정할 수 있습니다:

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

삭제 알림 커스터마이징

레코드가 성공적으로 삭제되면, 사용자의 작업 성공을 알리는 알림이 전송됩니다.

이 알림의 제목을 커스터마이징하려면 successNotificationTitle() 메서드를 사용하세요:

php
DeleteAction::make()
    ->successNotificationTitle('사용자가 삭제되었습니다')

전체 알림을 커스터마이징하려면 successNotification() 메서드를 사용하세요:

php
use Filament\Notifications\Notification;

DeleteAction::make()
    ->successNotification(
       Notification::make()
            ->success()
            ->title('사용자가 삭제되었습니다')
            ->body('사용자가 성공적으로 삭제되었습니다.'),
    )

알림을 완전히 비활성화하려면 successNotification(null) 메서드를 사용하세요:

php
DeleteAction::make()
    ->successNotification(null)

라이프사이클 훅

레코드가 삭제되기 전과 후에 코드를 실행하려면 before()after() 메서드를 사용할 수 있습니다:

php
DeleteAction::make()
    ->before(function () {
        // ...
    })
    ->after(function () {
        // ...
    })

나를 위한 문서 한글화