Это довольно сложно объяснить, и слово, поэтому я прошу прощения, если название не имеет смысла!
В основном на данный момент у меня есть сводная таблица, как это
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, в той или иной форме.
Возможно ли это?