如何 return 与同一 table 中的行的关系

How to return a relation with a row in the same table

我的Table结构

用户table

我希望系统如何工作

此数据库用户 table 是为具有多种用户类型(学生、parent 和教师)的学校系统设置的

一个学生有一个 parent_id,对于不是学生的用户,该字段可以为空。 parent_id字段是同一个table

中另一个用户的id

我想达到的目标

我希望能够基于 child 的 parent_id 与 child 的 parent 建立 return 关系=]

应该没有那么棘手。该关系将 returns 模型的一个实例,即父级。只需使用您的 table 名称、外键等即可。

public function getParent()
{
    return $this->belongsTo(Student::class, 'parent_id');
}

同样,你完全可以反过来做同样的事情:获取当前模型实例的所有“child student”:

public function children()
{
    return $this->hasMany(Student::class, 'parent_id');
}