Рекурсивно получить данные сводной таблицы - PullRequest
0 голосов
/ 13 июня 2018

Это довольно сложно объяснить, и слово, поэтому я прошу прощения, если название не имеет смысла!

В основном на данный момент у меня есть сводная таблица, как это

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 идентификатор.

Например, если я получу пользователя с идентификатором 1 и вызову вышеуказанный метод user_friends, он вернет друга с идентификатором 2, и все.

Но у друга 2 тоже есть друг с идентификатором 5, а у друга 5 есть друзья с идентификаторами 10 и 4 и т. Д., Поэтому я также хочу получить все эти данные.

По сути, вызывая один идентификатор пользователя, я хочу получить каждого из друзей, которые напрямую связаны с пользователем 1, затем рекурсивно получить каждого из его друзей, и так далее, и так далее, пока у меня не появятся все друзьякоторые могут быть связаны с пользователем 1, в той или иной форме.

Возможно ли это?

...