我的应用程序有一个用户表。我还有一个数据透视表,供将其他人添加到应用程序的人员使用。我试图列出用户添加的所有用户(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'); }
答案 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>';
}