【发布时间】:2021-08-11 00:35:37
【问题描述】:
我有这个删除行但不从文件夹中删除图像的功能。我认为这会起作用,但事实并非如此。有人可以帮助更改此代码,以便我可以在删除时从文件夹中删除图像吗?
谢谢
public function PermDelete($id)
{
$category = Category::find($id);
File::delete(public_path('images/categories/'. $category->cat_image));
$delete = Category::onlyTrashed()->findOrFail($id)->forceDelete();
return redirect()->back()->with('success','Category has been permanently deleted successfully!');
}
【问题讨论】:
-
Category::find($id);和Category::onlyTrashed()->findOrFail($id)很相似,但又足够不同。如果您的数据库中的category行被软删除,Category::find($id);将不起作用。如果不是软删除Category::onlyTrashed()->findOrFail($id)将不起作用...您可能应该尝试对两者使用相同的方法...或者只是执行$category->forceDelete()而不是再次查询。 -
这样更有意义吗? $delete = Category::onlyTrashed()->findOrFail($id); File::delete(public_path('images/categories/'.$delete->cat_image)); $delete->forceDelete(); return redirect()->route('all.categories')->with('success','类别信息完全删除');
-
是的,如果
categories行已被软删除,这将找到它,删除关联的文件,最后强制删除(硬删除)categories行。只要您打算只对软删除的记录执行此操作,该代码就可以正常工作:)
标签: laravel file-upload