我创建了一个注册表单。我创建了一个表来显示数据库中的所有数据。并且有一个名为Delete的按钮,我已经传递了唯一的ID。单击“删除”按钮时,它将从“数据库”中删除数据。但是,我想从数据库和文件夹中删除文件或图像。 我的文件和图像存储在公用文件夹中。
我该如何解决这个问题?
删除按钮代码。 (RegView.blade.php)
@foreach($data as $value )
<tr>
<td> <a href="delete{{ $value->id }}"><input type="submit" name="delete" value="Delete" class="btn-danger"></a> </td>
</tr>
@endforeach
控制器代码。 (RegViewController.blade.php)
function delete($id)
{
DB::table('academic')->where('id',$id)->delete();
return redirect('RegView');
}
这是我创建的路线。
Route::get('delete{id}','RegViewController@delete');
答案 0 :(得分:1)
我可以提出一个解决方案,即:设置查询构建器以查找文件:
$query = DB::table('academic')->where('id',$id);
假设file_path是一个保存表中路径的字段
$files_to_delete = $query->pluck('file_path')->toArray(); //keeping the result in a php
$query->delete(); //now deleting
Storage::delete($files_to_delete);
PS:您可以在Laravel docs中阅读有关使用存储的类似方法的更多信息,并且文档中只有一个重要信息如下:
这意味着它会查找“storage / app”目录以查找该文件。
答案 1 :(得分:1)
$pathToYourFile = 'example/someimage.jpeg';// get file path from table
if(file_exists($pathToYourFile)) // make sure it exits inside the folder
{
unlink($pathToYourFile); // delete file/image
// and delete the record from database
}