gpt4 book ai didi

laravel - 如何从 HasMany 关系中分离元素?

转载 作者:行者123 更新时间:2023-12-04 13:41:32 27 4
gpt4 key购买 nike

这是savesaveMany HasMany 上的方法关系类,但 dissociate(Many) 在哪里?/detach(Many)方法?也没有获得逆关系方法的内置方法,那么从 HasMany 中分离一组 id/models 的最佳方法是什么?关系对象。

目前我正在使用:

$hasMany = $parent->theRelationship(); // Get the relationship object.
$child = $hasMany->getRelated(); // Get an empty related model.
$key = $hasMany->getForeignKeyName(); // Get the name of the column on the child to set to NULL.
$child->findMany($IDs)->each(function($model) use ($key) {
$model->$key = NULL;
$model->save();
});

这可能会更短,例如:
$hasMany = $parent->theRelationship();
$hasMany->dissociate($IDs);

如果你从 Taylor 那里得到任何关于他为什么没有实现这一点的官方答案,我会在 GitHub 上看到他关闭了此类功能请求。

最佳答案

我不确定为什么没有函数,但为了比您的示例性能更高,您可以使用 DB 类,例如:

\DB::table('child_table')->where('parent_id', $parent->id)->update(['parent_id' => null]);

关于laravel - 如何从 HasMany 关系中分离元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56432767/

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