递归获取数据透视表数据

时间:2018-06-12 22:33:33

标签: 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->belongsToMany('App\Friends', 'user_friend', 'USER_ID', 'FRIEND_ID');
}

我希望能够通过引用1个id以最干净的方式递归访问我的所有好友。

例如,如果我获得id为1的用户并调用上面的user_friends方法,它将返回id为2的朋友,就是这样。

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

基本上通过调用单个用户ID,我想得到每个直接链接到用户1的朋友,然后递归地获取他们的每个朋友,依此类推,直到我拥有所有可以的朋友为止以某种方式,形状或形式链接到用户1。

这可能吗?

0 个答案:

没有答案