2016-05-29 2 views
1

У меня есть пользователи, сообщения и таблица друзей друзей, чтобы связать пользователей вместе.Таблица таблицы между различными таблицами

Для одного пользователя, я хочу получить все сообщения, принадлежащие пользователям, которые являются друзьями с этим пользователем.

//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'); 
} 

Если кто-то может мне точку в правильном направлении, что было бы здорово

ответ

1

Немного сложнее и грязный, но должна работать

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

Определение hasManyThrough отношения как:

function friendsPosts() { 
    return $this->hasManyThrough('Post', 'User', 'post_id', 'user_id'); 
} 
Смежные вопросы