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()
代码定义了我的用户模型中的关系