拉拉维尔 :如何从朋友列表中隐藏用户自己的个人资料?



有三个表:用户、配置文件、friend_request

profiles表的列:profile_id,id(用户的外键(,first_name,last_name

friend_request的表列:request_id、sender_id、to_user_id、requestrongtatus

逻辑:如果profile_id存在于requestrongtatus2的friend_request表的sender_id列或to_user_id示例:sender_id to _user_id requestrongtatus

           5          6            2
$request_accept = DB::table('friend_request')->select('profiles.profile_id','profiles.first_name',
'friend_request.request_id')->leftjoin('profiles', function($join)
 {
   $join->on('friend_request.sender_id' , '=','profiles.profile_id');
   $join->orOn('friend_request.to_user_id' , '=','profiles.profile_id');
  }
 )->where('to_user_id',$my_profile_id)->orwhere('sender_id',$my_profile_id)->where('interest_status','2')->whereNotIn('profiles.profile_id', function($q) use ($my_profile_id)
  {
   $q->select('profile_id')->from('profiles')->where('profile_id',$my_profile_id);
   })->groupby('profiles.profile_id')->get(); 

在哪里我不工作。

如果我理解你的要求。。。

也许最好是用关系来制作这些所有的模型,然后你可以做一个更简单的查询,比如这样。

假设您的friend_request表现在有一个具有user关系的FriendRequest模型。下面的查询使用$userId,假设这是您希望获得所有好友请求的用户的ID。

FriendRequest::where('to_user_id', $my_profile_id)->get();

如果一切设置正确,用户将不会返回,因为他们无法向自己发送好友请求。

最新更新