@OlegSedoy

Как удалить файл в spatie/laravel-medialibrary?

Получаю список файлов привязанных к модели:
@if($share->hasMedia('shares'))
            <div class="form-group">
                <label>Загруженные изображения</label>
                @foreach($share->getMedia('shares') as $media)
                    <div class="card" style="width: 10rem;">
                        <img class="card-img-top" src="{{$media->getUrl()}}">
                        <a class="btn btn-block btn-danger rounded-0"
                           href="{{route('delete.media',['id'=> $media->id])}}">удалить</a>
                    </div>
                @endforeach
            </div>
        @endif


В шаблоне есть ссылка на удаление файла, код контроллера
class mediaDeleteController extends Controller
{

    public function __invoke(Request $request)
    {

        Media::whereIn('id', [$request->id])->delete();

        return back();
    }
}


Проблема в том, что удаляется только связь с моделью, физический файл все равно остается.
  • Вопрос задан
  • 632 просмотра
Решения вопроса 1
zvermafia
@zvermafia
WebDev
Думаю надо через модель удалить, а не через query builder. То есть так:
Media::findOrFail($request->id)->delete();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы