【发布时间】:2016-07-25 10:36:06
【问题描述】:
谁能告诉我如何完成这项工作?当我删除相册时,我想从服务器中删除所有上传的文件,删除关系并从数据库中删除照片。删除文件有效(但如果有更好的方法可以做到这一点,请赐教):
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();
}
【问题讨论】:
-
试试这个 \File::delete($file);
标签: php laravel polymorphism