2017-08-07 14 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 - 非常ブロUをありがとう! –

答えて

1

、すなわち:ファイルを見つけるためのセットアップクエリビルダ:FILE_PATHを想定し

$query = DB::table('academic')->where('id',$id); 

は、あなたのテーブルに

$files_to_delete = $query->pluck('file_path')->toArray(); //keeping the result in a php 
$query->delete(); //now deleting 
Storage::delete($files_to_delete); 
をパスし続ける場です

PS:同様の方法については、StorageでLaravel docsと1つだけを読むことができますdocに重要な情報は以下の通りである。

enter image description here

それはそのファイルを見つけるために、「ストレージ/アプリ」ディレクトリを探すことを意味します。

+0

@KistlakRajapaksha file_pathは、ファイル名を持つフィールドの単なる例です。あなたは、あなたの学術のテーブルにあるフィールドを質問に表示できますか? –

+0

ああ、真剣に申し訳ありません..私はそれを更新しました..u rとても速い.. –

+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

それでも、データベースから削除されます。しかし、フォルダから削除されませんでした..どのように私はこれを修正できますか? –

関連する問題