删除Laravel 5.5中的文件

时间:2017-09-25 18:35:06

标签: php laravel delete-file laravel-5.5

我正在使用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"]);

但它有效... 我真的很困惑,为什么我不能使用这个变量!

2 个答案:

答案 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);