如何在Laravel Eloquent中实现嵌套查询


How can I achieve nested queries in Laravel Eloquent?

我有两个表的追随者和用户。。。followers表有follower和followee id。现在我想检索一个用户的关注者/被关注者。

    $followers_id=Follower::where('followee_id',$user->id)->select('follower_id')->get();
    $following_id=Follower::where('follower_id',$user->id)->select('followee_id')->get();
    $followers=User::where('id',$followers_id->follower_id)->take(15)->get();
    $following=User::where('id',$following_id->followee_id)->take(15)->get();

我怎样才能做到这一点?

首先,您需要在User类中定义一个多对多关系,该关系将使用中间跟随者表:

public function followers() {
  $this->belongsToMany(User::class, 'followers', 'followee_id', 'follower_id');
}

现在,您应该能够通过简单地访问来获得给定用户的追随者列表

$followers = $user->followers;