Php 递归获取数据透视表数据

Php 递归获取数据透视表数据,php,laravel,laravel-5,eloquent,pivot-table,Php,Laravel,Laravel 5,Eloquent,Pivot Table,这是一个很难解释和文字,所以我道歉,如果标题没有意义 基本上目前我有一个这样的数据透视表 ID | USER_ID | FRIEND_ID 1 | 1 | 2 2 | 5 | 10 3 | 2 | 5 4 | 3 | 9 5 | 5 | 4 public function user_friends(){ return $this->belon

这是一个很难解释和文字,所以我道歉,如果标题没有意义

基本上目前我有一个这样的数据透视表

ID | USER_ID | FRIEND_ID
1  |       1 |        2
2  |       5 |        10
3  |       2 |        5
4  |       3 |        9
5  |       5 |        4
public function user_friends(){
    return $this->belongsToMany('App\Friends', 'user_friend', 'USER_ID', 'FRIEND_ID');
}
通过这样的关系,我可以为一个用户获得所有的朋友

ID | USER_ID | FRIEND_ID
1  |       1 |        2
2  |       5 |        10
3  |       2 |        5
4  |       3 |        9
5  |       5 |        4
public function user_friends(){
    return $this->belongsToMany('App\Friends', 'user_friend', 'USER_ID', 'FRIEND_ID');
}
我希望能够通过引用1个id以尽可能干净的方式递归访问我的所有朋友

例如,如果我获取id为1的用户并调用上面的
user\u friends
方法,它将返回id为2的friends,就是这样

但是朋友2也有一个id为5的朋友,id为5的朋友有id为10和4的朋友,依此类推,所以我也想得到所有这些

基本上,通过调用一个用户id,我希望获得每个直接链接到用户1的朋友,然后递归地获得他们的每个朋友,依此类推,直到我拥有所有可以以某种方式、形状或形式链接到用户1的朋友


这是可能的吗?

注意,如果不小心的话,你可能会陷入这种结构的无限循环中。这最终不会选择你所有的用户吗?假设没有完全孤立的组,向我们展示您的用户模型可以吗?您正在定义relationship@DevinGray上面的
user\u friends()
代码定义了我的用户模型中的关系