0

这些是我的表:

用户

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);

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

它应该给我 2,3 & 4UserConnections表中的行

说明:在第二行, user3
有一个父用户,即 user1
在第三和第四行,user3 有两个孩子

4

1 回答 1

0

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

用户

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

于 2016-05-18T11:18:27.773 回答