Bio*_*s90 2 orm laravel eloquent
是否有一个简单的解决方案,可以通过模型上的hasMany Relation分离(不删除)所有相关模型?
例如,我有两个表:
大学(编号,姓名)
学生(ID,名称,college_id(可空))
在学院模型中,我定义了这种关系:
class College extends Model
{
public function students()
{
return $this->hasMany('App\Student','college_id','id');
}
}
Run Code Online (Sandbox Code Playgroud)
将当前所有大学生从学院中分离出来的最佳方法是什么(即,让该学院的所有学生都将他们的college_id设置为null)?
有没有一种简单的方法可以使所有学生脱离雄辩而脱离大学模式?
就像是
class College extends Model
{
...
public function detachAllStudents()
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
PS已经读过这个问题Laravel hasMany detach,但是当我尝试将其应用于我的应用程序时出现错误
是的,您可以按如下所示分离所有大学生。实际上,我们已经college_id在您的students表中,并且必须以college_id某种方式使它为null。在Eloquent中这不称为分离。detach有了many to many关系,这个词就来了。因此,让我们更新学生,看看它是否有效。
$college->students()->update(['college_id' => null);
Run Code Online (Sandbox Code Playgroud)
这样,您的方法可以完成如下:
public function detachAllStudents()
{
$college->students()->update(['college_id' => null]);
}
Run Code Online (Sandbox Code Playgroud)
而已!