我正在使用Laravel 5.5,我正在尝试删除存储在storage/app/public
目录中的文件。
我正在尝试从数据库中检索文件路径并删除它,但它无法正常工作。
$file = Blog::where('id', $id)->pluck('image');
Storage::delete($file);
我正在成功检索文件的路径:
echo $file = Blog::where('id', $id)->pluck('image');
因为上面这句话让我知道了:
["public\/blog\/tLL0JoDmAKadTL0SqFZp1Is4oAK3YUo0GjOWB3fh.jpeg"]
所以我认为使用存储外观和删除方法有问题,我试过这个:
Storage::delete(["public\/blog\/tLL0JoDmAKadTL0SqFZp1Is4oAK3YUo0GjOWB3fh.jpeg"]);
但它有效... 我真的很困惑,为什么我不能使用这个变量!
答案 0 :(得分:1)
Laravel pluck返回一个雄辩的集合,而不是一个数组。
尝试使用all()
或toArray()
函数
$file = Blog::where('id', $id)->pluck('image')->all();
或者
$file = Blog::where('id', $id)->pluck('image')->toArray();
答案 1 :(得分:1)
答案是:
$file = Blog::where('id', $id)->first()->image;
Storage::delete($file);