2017-08-07 153 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

不過,它從數據庫刪除。但是,沒有從文件夾刪除..我怎樣才能解決這個問題? –

相關問題