2016-10-23 3 views
1

Я имею эту функцию, чтобы удалить изображение, когда строка удаляетсяLaravel Файл: удалить не удалить файл

public function destroy($id) 
    { 
     $slider = Slider::find($id); 
     $fileName = $slider->image; 
     $fullPath = asset('/images/banner/' . $fileName); 
     //dd($fullPath); 
     File::delete($fullPath); 
     $slider->delete(); 
     return Redirect::to('admin/home-slider'); 
    } 

но подоконник вернулся без удаления файла. что я сделал не так?

Update для других, кто может столкнуться с той же проблемой
в моем случае я удалил public из моего проекта, прежде чем очистить свой URL на основе этой tutorial
решенных, просто удалив asset из $fullPath
и оставил его так же, как тот $fullPath = 'images/banner/' . $fileName;
и он работает просто отлично теперь

ответ

1

Используйте base_path() вместо актива

public function destroy($id) 
    { 
     $slider = Slider::find($id); 
     $fileName = $slider->image; 
     $fullPath = base_path().'/public/images/banner/'. $fileName; 
     //dd($fullPath); 
     File::delete($fullPath); 
     $slider->delete(); 
     return Redirect::to('admin/home-slider'); 
    } 

обновленный

вы можете добавить все изображения внутри папки

enter image description here

+0

моя папка изображений существует в корне моего проекта, но 'базовый_путь()' будет указывать на '/ приложение ' –

+0

no.base path вернет корень каталога проекта, а app_path() вернет путь к папке приложения, и я верю, что у вас есть изображения внутри/public/images/banner/ – iCoders

+0

да, вы правы' app_path() 'будет возвращать приложение путь к папке, но каталог изображений не существует в корне. см., если я использую 'app_path()' Я получу путь, подобный этому 'C: \ wamp \ www \ gt \ local/images/banner/0kaQfr_5.jpg', который является неправильным путем, он должен быть чем-то вроде этого' C: \ wamp \ www \ gt \ images/banner/0kaQfr_5.jpg' –

Смежные вопросы