2017-08-07 173 views
1

我已创建注册表单。我创建了一个表来显示数据库中的所有数据。还有一个名为Delete的按钮,我已经通过了唯一的ID。当我单击该删除按钮时,它将删除数据库中的数据。但是,我想从数据库和文件夹中删除文件或图像。 我的文件和图像存储在公用文件夹中。如何从Laravel的文件夹和数据库中删除文件或图像?

我该如何解决这个问题?

删除按钮代码。 (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}','[email protected]'); 
+1

https://laravel.com/docs/5.4/filesystem#deleting-files – aynber

+0

@aynber - 非常感谢您! –

回答

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以及只有一个在doc重要信息如下:

enter image description here

含义,它看起来对“存储/应用程序”目录下找到该文件。

+0

@KistlakRajapaksha file_path只是具有文件名的字段的一个例子。你可以在问题中展示你在学术表上的字段吗? –

+0

哦,真的很抱歉..我只是更新了它..所以很快.. –

+0

我的文件和图像存储在公用文件夹。那么,我该如何解决它? –

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 
} 
+0

不过,它从数据库删除。但是,没有从文件夹删除..我怎样才能解决这个问题? –

相关问题