2016-10-23 55 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'); 
    } 

但门槛不删除文件恢复删除的图像。 我在这里做错了什么?

更新 其他谁可能面临同样的问题
在我的情况,我从我的项目中删除的public之前在此基础上tutorial
由刚刚从$fullPath
和去除asset解决清理我的网址离开它就是这样$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

我的图片文件夹存在在我的项目的根目录,但'BASE_PATH()'将指向'/应用' –

+0

no.base路径将返回项目目录的根目录,并且app_path()将返回应用程序文件夹路径,并且我相信你在/ public/images/banner/ – iCoders

+0

里面有图像yes you are right'app_path()'will return app文件夹路径,但图像目录不在它的根目录。看看我是否使用'app_path()'我会得到像'C:\ wamp \ www \ gt \ local/images/banner/0kaQfr_5.jpg'这样的路径,它应该是这样的'C:\ wamp \ www \ gt \ images/banner/0kaQfr_5.jpg' –