🔧 Filament: Delete Attachments when Deleting a Record
Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to
Filament allows you to add attachments to a record, but doesn’t delete them when you delete the record.
In order to solve this issue, we have two alternatives:
Listen to model’s deleting
event
When a model it’s about to be deleted, it fires the deleting
event. We can listen to this event to trigger the functionality responsible to delete any attachements before the model no longer exists.
Inside the model class we can add the booted
method to register new event listeners to the model.
class Project extends Model
{
protected $fillable = [
'title', 'slug', 'repository', 'description', 'thumbnail',
];
/**
* The "booted" method of the model.
*/
protected static function booted(): void
{
static::deleting(function ($project) {
Storage::disk('public')->delete($project->thumbnail);
});
}
}
This code will delete the thumbnail
attachment before deleting the model.
You can read more about this in the Laravel documentation https://laravel.com/docs/11.x/eloquent#events-using-closures
Modify Filament’s delete action
Another option is to change the behaviour of the delete action.
protected function getActions(): array
{
return [
Actions\DeleteAction::make()
->after(function (Project $project) {
// delete single
if ($project->thumbnail) {
Storage::disk('public')->delete($project->thumbnail);
}
})
];
}
You can use the option better fits your requirements, but you should keep in mind that adding an event listener will delete the attachment when your model is deleted, whenever has occured by a Filament action or another part of code in your app.
This is important because probably will determine whenever option you should choose.
...
🔧 C++ 為什麼要有 delete 和 delete[]
📈 19.04 Punkte
🔧 Programmierung
🍏 How to Delete Apps on Mac that Won’t Delete
📈 19.04 Punkte
🍏 iOS / Mac OS
📰 Ultimaker S3: Endlich Filament-Flow-Sensoren
📈 18.48 Punkte
📰 IT Nachrichten
🔧 Customize Filament Table Query
📈 18.48 Punkte
🔧 Programmierung
🔧 Filament: Add icon to form buttons
📈 18.48 Punkte
🔧 Programmierung