Laravel: ошибка при попытке удалить изображение из хранилища

61
4

Поэтому, когда пользователь удаляет сообщение на моем веб-сайте, я хочу, чтобы изображение было удалено из хранилища. У меня есть код на месте, и путь должен работать, но по какой-то причине он просто возвращает следующую ошибку:

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Class 'App\Http\Controllers\Storage' not found

Почему он ищет каталог контроллера для каталога хранилища? и почему он может найти изображение, когда оно отображает его.

Вот блок кода, который должен удалить изображение:

public function getDeletePost($post_id){
$post = Post::where('id', $post_id)->firstOrFail();

if($post->cover_image != 'noimage.jpg'){
// Delete Image
Storage::delete('/public/cover_images/'.$post->cover_image);
}

$post->delete();
return redirect()->route('dashboard')->with(['message' => 'post deleted']);
}

спросил(а) 2021-01-19T18:23:21+03:00 2 месяца, 3 недели назад
1
Решение
87

Я думаю, что вы не импортировали класс Storage. Вы можете сделать это сверху контроллера:

use Storage;

Или просто напишите так:

\Storage::delete('/public/cover_images/'.$post->cover_image);

ответил(а) 2021-01-19T18:23:21+03:00 2 месяца, 3 недели назад
62

включают use Storage; в верхней части вашего контроллера. Вы используете фасад без импорта своего пространства имен

ответил(а) 2021-01-19T18:23:21+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема