gpt4 book ai didi

Laravel - Eloquent 多次删除与销毁数组

转载 作者:行者123 更新时间:2023-12-03 16:56:49 24 4
gpt4 key购买 nike

我想知道使用 ELOQUENT 销毁多个数据库条目的最佳方法是什么,但我找不到确定这一点的方法。

所以我有 3 个 id 数组(2 个是整数,1 个是字符串)。每个条目都使用 foreach 和 ->delete() 还是销毁数组更好?

当我查看 destroy函数,它声明如下:

We will actually pull the models from the database table and call delete on each of them individually so that their events get fired properly with a correct set of attributes in case the developers wants to check these.

并且代码清楚地显示:

$key = $instance->getKeyName();

foreach ($instance->whereIn($key, $ids)->get() as $model) {
if ($model->delete()) {
$count++;
}
}

所以我想这并没有真正的区别,destroy 函数只是为了避免使用 foreach。谁能确认或告知并解释一下?

谢谢:)

最佳答案

首先您需要了解 destroy 和 delete 之间的区别,destroy 被认为用于删除实体(对象/模型),delete 被认为用于查询构建器。

两者是不同的方式,但它们具有相同的目的,您可以这样做:

Model::destroy(array(1, 2, 3));

$ids = explode(",", [1,2,3]);
$model->find($ids)->each(function ($model, $key) {
//Do things before deleting
$model->delete();
});

但如您所见,第一个更直接,在第二个上,您可以在删除之前执行自定义操作

关于Laravel - Eloquent 多次删除与销毁数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45915621/

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