Filament le permite agregar archivos adjuntos a un registro, pero no los elimina cuando elimina el registro.
Para solucionar este problema, tenemos dos alternativas:
Cuando un modelo está a punto de ser eliminado, activa el evento de eliminación. Podemos escuchar este evento para activar la funcionalidad responsable de eliminar cualquier archivo adjunto antes de que el modelo ya no exista.
Dentro de la clase del modelo podemos agregar el método de arranque para registrar nuevos detectores de eventos en el modelo.
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); }); } }
Este código eliminará la miniatura adjunta antes de eliminar el modelo.
Puedes leer más sobre esto en la documentación de Laravel https://laravel.com/docs/11.x/eloquent#events-using-closures
Otra opción es cambiar el comportamiento de la acción de eliminación.
protected function getActions(): array { return [ Actions\DeleteAction::make() ->after(function (Project $project) { // delete single if ($project->thumbnail) { Storage::disk('public')->delete($project->thumbnail); } }) ]; }
Puedes usar la opción que mejor se adapte a tus necesidades, pero debes tener en cuenta que agregar un detector de eventos eliminará el archivo adjunto cuando se elimine tu modelo, siempre que haya ocurrido por una acción de Filament u otra parte del código en tu aplicación.
Esto es importante porque probablemente determinará la opción que debes elegir.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3