我有文章的图像,当我更新文章时,我想检查图像是否相同,如果不相同,我想删除它们,但如果可能的话,我想删除整个集合而无需其他查询,有些东西就像我在下面的代码中所拥有的 $images->delete();
。这是我的功能:
$images = Media::where('article_id', $article->id)->get();
foreach($images as $image) {
$article_images[] = $image->original_name;
}
foreach($files as $file) {
$filePathArr = explode('/', $file);
$fileName = array_pop($filePathArr);
$originalFile = explode('-', $fileName);
$originalFileName = array_pop($originalFile);
$newFiles[] = $originalFileName;
}
if ($newFiles != $article_images){
$images->delete();
}
原文由 Ludwig 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果不进行查询,您就无法从数据库中删除。
您将不得不像这样提出新的请求:
这只是一个简单的查询,因此不应该有任何性能损失。
如果我们谈论的是包含 100 个项目的集合,您可以像这样优化查询: