任何人都可以告訴我如何做到這一點?當我刪除相冊時,我想從服務器上刪除所有上傳的文件,刪除關係並從數據庫中刪除照片。刪除文件工作(但如果有更好的方式來做到這一點,通過各種手段,賜教):Laravel多態關係分離和刪除
foreach($album->photos as $photo)
{
File::delete($photo->path);
File::delete($photo->thumbnail_path);
}
但我的主要問題是這樣的。我想分離相冊和照片之間的關係,並在刪除實際文件後從數據庫中刪除照片。但我只能使用detach刪除關係,或者使用delete刪除數據庫中的照片。無論我第一次使用哪一個作品,都是因爲之後關係不存在或照片不見了,當然。
我該怎麼做?有沒有簡單的方法來實現這一點?
編輯:
做,現在這樣的權利,好做法還是有更好的辦法?
public function delete(Album $album)
{
$ids = array();
foreach($album->photos as $photo)
{
File::delete($photo->path);
File::delete($photo->thumbnail_path);
$ids[] = $photo->id;
}
$album->photos()->detach();
Photo::whereIn('id',$ids)->delete();
$album->delete();
flash()->success('Album deleted');
return back();
}
試試這個\文件::刪除($文件); –