Laravel 如何从模型中找到共同好友?
Laravel How to find Mutual Friends from model?
我正在使用 laravel 8。
我想找到条目和个人资料的共同好友。
有不清楚的地方请问我...
我的朋友们table;
user_friends;
id | user_id | user_friend_id
1 | 10 | 20
2 | 20 | 10
在我的用户模型中;
public function friends(){
return $this->belongsToMany(User::class, 'user_friends', 'user_id', 'user_friend_id');
}
public function friendsOf(){
return $this->belongsToMany(User::class, 'user_friends', 'user_friend_id', 'user_id');
}
如何找到已验证用户的个人资料的共同朋友?
示例;
@foreach($user as $entry)
{{ count( $entry->mutual(Auth::id()) ) }}
@foreach($entry->mutual(Auth::id()) as $item)
{{ $item->name }}
...
@endforeach
@endforeach
我使用助手来完成这项工作。我在 App 文件夹上创建 helpers.php 并创建一个函数。
function mutualFriends($id){
$profile = User::where('id', $id)->first();
$profileFriends = $profile->friends;
$profileFriendsIds = [];
foreach ($profileFriends as $entry){
$profileFriendsIds[] = $entry->id;
}
$loggedUserFriends = Auth::user()->friends->whereIn('id', $profileFriendsIds);
return $loggedUserFriends;
}
现在我从视图中调用该函数;
{{count(mutualFriends(Auth::id()))}}
或
@foreach(mutualFriends($profile->id) as $entry)
...
@endforeach
我正在使用 laravel 8。 我想找到条目和个人资料的共同好友。
有不清楚的地方请问我...
我的朋友们table;
user_friends;
id | user_id | user_friend_id
1 | 10 | 20
2 | 20 | 10
在我的用户模型中;
public function friends(){
return $this->belongsToMany(User::class, 'user_friends', 'user_id', 'user_friend_id');
}
public function friendsOf(){
return $this->belongsToMany(User::class, 'user_friends', 'user_friend_id', 'user_id');
}
如何找到已验证用户的个人资料的共同朋友?
示例;
@foreach($user as $entry)
{{ count( $entry->mutual(Auth::id()) ) }}
@foreach($entry->mutual(Auth::id()) as $item)
{{ $item->name }}
...
@endforeach
@endforeach
我使用助手来完成这项工作。我在 App 文件夹上创建 helpers.php 并创建一个函数。
function mutualFriends($id){
$profile = User::where('id', $id)->first();
$profileFriends = $profile->friends;
$profileFriendsIds = [];
foreach ($profileFriends as $entry){
$profileFriendsIds[] = $entry->id;
}
$loggedUserFriends = Auth::user()->friends->whereIn('id', $profileFriendsIds);
return $loggedUserFriends;
}
现在我从视图中调用该函数;
{{count(mutualFriends(Auth::id()))}}
或
@foreach(mutualFriends($profile->id) as $entry)
...
@endforeach