思路:获取登录用户的id,通过用户的id来查询好友表中的该用户所有的好友id,通过查到的好友id再次查询关系表查询你是否是对方的好友,如果双方都是好友则就是好友,将id放入到一个数组中,通过好友id来查(whereIn)询用户表中的用户头像和昵称
/**
* @param Request $request
* @return array
* 好友列表
*/
public function index(Request $request)
{
//获取用户id
$token = $request->header('token');
$user_id = (new TokenServe())->checkToken($token);
//查询该用户的好友
$userData = FriendList::where('user_id',$user_id)->get();
$friends_id = $userData->pluck('friend_id')->toArray();
//将对方是你好友 并且判断你是否是对方好友
$friendData = FriendList::whereIn('user_id',$friends_id)->get();
$user_friends_id = [];
//如果是加入到数组中
foreach ($friendData as $k => $v)
{
if ($v->friend_id == $user_id){
array_push($user_friends_id,$v->user_id);
}
}
//关联user表查询
$friendData = FriendList::with('user')
->whereIn('user_id',$user_friends_id)
->where('friend_id',$user_id)
->get()->pluck('user')->toArray();
$data = [];
//数据处理
foreach ($friendData as $k => $v)
{
array_push($data,[
'avatar_url' => $v['avatar_url'],
'nickname' => $v['nickname']
]);
}
return ['code'=>200,'msg'=>'查询成功','data'=>$data];
}