首页 > 解决方案 > Laravel 从存储中删除文件

问题描述

我正在尝试从客户那里删除所有文件:

        // remove extra documents
        $documents = Document::where('customer_id', $customer->id);
        foreach ($documents as $document) {
            Storage::disk('userfiles')->delete($document->name);
        }
        $documents->delete();

记录从数据库中删除,但文件保留在存储文件夹中。数据库中的文件名与存储文件夹中的文件名相同。(选中)

我还以同样有效的方法使用以下代码:

        Storage::disk('userfiles')->delete($customer->id_card);

我正在使用 Angular 作为前端,而且我对两者都是新手。

标签: laravel

解决方案


于是我找到了解决办法,

            // remove extra documents
            $documents = Document::where('customer_id', $customer->id)->get();
            foreach ($documents as $document) {
                Storage::disk('userfiles')->delete($document->name);
                $document->delete();
            }

没有变量是空->get()$documents,所以它不会循环。不起作用,所以我将它移到循环中并使用它自己删除->get()每条记录$documents->delete()$document->delete()


推荐阅读