在 laravel 中的一个 table 中获得 parents 和 children 关系的最佳方法?

Best way to get parents and children relationships within one table in laravel?

这些是我的 table:

用户:

id      username        password
1       user1           ********
2       user2           ********
3       user3           ********
4       user4           ********
5       user5           ********
6       user6           ********

用户连接:

pivot_id    parent_user_id  child_user_id
1           1               2
2           1               3
3           3               4
4           3               5
class User extends Model
{
    public function connections()
    {
        return $this->hasMany('App\UserConnections')->with(['parent','child']);
    }
}

class UserConnection extends Model
{
    public function parent()
    {
        $this->belongsTo('App\User','parent_user_id');
    }

    public function child()
    {
        $this->belongsTo('App\User','child_user_id');
    }   
}

$user = App\User::find(3);

现在,当我为用户 ID 3 调用 $user->connections 时;

它应该给我 UserConnections table

的第 2,3 & 4 行

解释:
在第二行,user3 有一个 parent 即 user1
在第三和第四行,user3 有两个 children

这就是解决我问题的方法:

用户:

id      username        password
1       user1           ********
2       user2           ********
3       user3           ********
4       user4           ********
5       user5           ********
6       user6           ********

用户连接:

pivot_id    parent_user_id  child_user_id   relation
1           1               2               child
2           2               1               parent
3           1               3               child
4           3               1               parent
5           3               4               child
6           4               3               parent
7           3               5               child
8           5               3               parent
class User extends Model
{
    public function connections()
    {
        return $this->belongsToMany('App\Newsroom','UserConnections','parent_user_id','child_user_id')->with(['user']);
    }
}

class UserConnection extends Model
{
    public function user()
    {
        $this->belongsTo('App\User','child_user_id');
    }
}

感谢@Autista_z