不同表之间的关联表查询

时间:2016-05-29 14:54:45

标签: laravel laravel-4 eloquent

我有用户,帖子和朋友关联表,可以将用户绑在一起。

对于单个用户,我希望获得属于该用户的朋友的所有帖子。

//user model
function posts() {
    return $this->hasMany('Post');
}
function friends() {
    return $this->belongsToMany('User', 'friends', 'friend_id', 'user_id');
}

//post model
function user() {
    return $this->belongsTo('User');
}

如果有人能指出我正确的方向,那就太棒了

2 个答案:

答案 0 :(得分:1)

有点棘手和混乱,但应该有效

$friends = $user->friends()->lists('id');
$friendsPosts = Post::whereIn('user_id', $friends);

答案 1 :(得分:1)

定义hasManyThrough关系,如:

function friendsPosts() {
    return $this->hasManyThrough('Post', 'User', 'post_id', 'user_id');
}