如何获得我在Eloquent中关注的人的帖子

时间:2016-05-06 18:12:17

标签: laravel eloquent

我有User型号,Post型号。

在我的User模型中,我有以下内容:

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


public function following()
{
    return $this->belongsToMany(User::class, 'followers', 'user_id', 'follower_id')->withTimestamps();
}


public function posts()
{
    return $this->hasMany(Post::class);
}

基本上,$user->following给了我一系列我关注的用户,$user->posts给了我一些帖子。我想这样做:

$posts = [];
$user->following->each(function($f) use($posts) {
   $posts[] = $f->posts;
});

但更多的Eloquenty方式,如果这是有道理的。因为我想在此之后对结果进行分页。我在考虑做hasManyThrough,但不知道怎么做?

1 个答案:

答案 0 :(得分:1)

Here是类似问题的链接和答案。

我想你会做这样的事情:

User::where('id', $id)->with(['following.posts' => function ($q) use (&$posts) {
    $posts= $q->get()->unique();
}])->first();