gpt4 book ai didi

php - Laravel - 删除整个集合

转载 作者:行者123 更新时间:2023-12-02 19:32:42 32 4
gpt4 key购买 nike

我有文章的图像,当我更新文章时,我想检查图像是否相同,如果不是,我想删除它们,但如果可能的话,我想删除整个集合而不是另一个查询,类似于我在下面的代码中的内容 $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();
}

最佳答案

您无法在不进行查询的情况下从数据库中删除。

您必须像这样提出新请求:

Media::where('article_id', $article->id)->delete();

这只是一个简单的查询,因此不会有任何性能损失。

如果我们正在讨论包含 100 个项目的集合,您可以像这样优化查询:

Media::whereIn('id', $images->pluck('id'))->delete(); 

关于php - Laravel - 删除整个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38120305/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com