如何在Eloquent中写这个来获取好友列表

时间:2014-04-16 00:58:43

标签: php laravel-4 eloquent

我的应用程序有一个用户表。我还有一个数据透视表,供将其他人添加到应用程序的人员使用。我试图列出用户添加的所有用户(1)。我怎么能用雄辩的方式写这个呢?

Select u.* FROM users u join friend_user f ON u.user_id = f.friend_id where f.user_id = 1

我在一个呈现数据透视表的朋友模型中有它。在那里拥有完整的查询或在User和Friend类中创建友元函数以显示关系是否更好?

<in User model> public function Friend(){ return $this->belongsTo('User'); }

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您的用户模型中应该包含以下内容:

public function friends()
{
    return $this->belongsToMany('User', 'user_has_friends', 'user_id', 'friend_id');
}

当然会根据您的需要进行修改。

现在你可以抓住这样的朋友:

$user = User::find(1);

foreach($user->friends as $friend)
{
    echo $friend->name .'<br>';
}