2017-03-15 7 views
0

Laravel Mediableを使用して、個々のファイルを削除する最善の方法を見つけようとしています。親モデルを表示しているときにファイルのリストがあり、削除アイコンをクリックしてファイルを削除する(対応するMediaオブジェクトと物理ファイルの両方を削除する必要があります)。Laravel Mediable - 物理ファイルと一緒にメディアを削除する

$path_parts = pathinfo($request->filename); 
$attachment = Media::where('directory', $folder) 
       ->where('filename', $path_parts['filename']) 
       ->where('extension', $path_parts['extension']) 
       ->first(); 
$attachment->delete(); 

が、これは物理的なファイル自体を唯一のデータベースの行を削除していない:これは動作します

$attachment = Media::where('id', $request->fileid); 
$attachment->delete(); 

そのユニークなしかし、私はだかと思ったので、私はIDを経由してファイルを削除することを好むだろう行方不明...

答えて

0

あなたはこのコード

ファイル::削除( 'パス/に/'.$要求 - >ファイル名)を使用しても、ファイルを削除する必要があります。第二のブロックの

=更新= 問題は、単に追加する必要がありますされて - >最初の()実際には、このような場合には必要ないのWHERE句

+0

の終わりに - パッケージを使用しての美しさこのような。 http://laravel-mediable.readthedocs.io/en/latest/mediable.html#deleting-mediablesを参照してください。また、前述したように、それは最初のブロックと2番目のブロックとで正常に動作します。 – seekay

+0

ああ、2番目のブロックの問題は、where句の最後に - > first()を追加するだけです –

関連する問題