gpt4 book ai didi

Laravel hasMany 关系全部分离

转载 作者:行者123 更新时间:2023-12-02 00:22:41 27 4
gpt4 key购买 nike

是否有一个简单的解决方案可以通过模型上的 hasMany Relation 分离(不删除)所有相关模型?

例如,我有两个表:

  • 学院(ID、名称)

  • 学生(id、姓名、college_id(可为空))

在大学模型中我定义了这种关系:

class College extends Model
{
public function students()
{
return $this->hasMany('App\Student','college_id','id');
}
}

将所有当前学院学生与学院分离的最佳方法是什么(即获取学院的所有学生并将其 College_id 设置为 null)?

是否有一种简单的方法可以使用 eloquent 将所有学生从大学模型中分离出来?

类似于

class College extends Model
{
...
public function detachAllStudents()
{
...
}
}

附注已经读过这个问题Laravel hasMany detach ,但是当我尝试将其应用到我的应用程序时出现错误

最佳答案

是的,您可以按如下方式分离所有大学生。实际上,我们的 students 表中已经有了 college_id,我们必须以某种方式将此 college_id 设为 null。这在 Eloquent 中不称为分离。当您拥有多对多关系时,就会出现分离这个词。那么,让我们更新一下学生的情况,看看它是否有效。

$college->students()->update(['college_id' => null);

因此,您的方法可以完成如下:

public function detachAllStudents()
{
$college->students()->update(['college_id' => null]);
}

就是这样!

关于Laravel hasMany 关系全部分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56155472/

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