我正在使用lumen和Vuejs,但我的以下系统有问题。我可以关注和取消关注其他用户,也可以显示用户的帖子。
$test = Posts::join('followers', 'posts.user_id', '=', 'followers.follower_id')
->join('users', 'followers.user_id', '=', 'users.id')
->where('users.id', $user->id)
->get();
对于所有关注的用户,我的结果是这样的:
{
"id": 221,
"user_id": 221,
"content": "Mein erster Post hier :) Hi!!! ",
"created_at": "2019-07-01 09:04:44",
"updated_at": "2019-07-17 18:52:33",
"follower_id": 217,
"follows": 1,
"username": "cicek",
"email": "cicek@cicek.de",
"avatar": "photo.png"
}
我的问题是,用户名是已登录用户的名称。我想获取具有follower_id的关注用户的数据,因此可以在已登录用户的供稿中显示它。知道我只能显示帖子的内容,但不能在Feed中显示帖子的所有者。
我还认为没有必要查看已登录用户的用户名和其他数据,但是我无法通过其他方式进行操作。我还尝试在Posts Model中建立一些关系
public function ownerPosts()
{
return $this->belongsToMany('App\User', 'followers', 'user_id', 'follower_id');
}
但是它没有用,因为这样我可以看到每个关注该用户的人。
在个人资料上,我这样显示帖子:
$post_query = Posts::with('comments')
->with('comments.owner')
->with('likes.isLiked')
->withCount('likes')
->where('user_id', $user->id)
->orderBy('id', 'desc')
->limit($request->limit)
->get();
您知道我该如何解决吗?
答案 0 :(得分:0)
跟随者也是用户,因此在这种情况下,您可以使用不同的名称来两次加入该用户。我进行了查询,您可以尝试或对其进行修复以供使用。我想您已经明白了,如果我遗漏了一些东西,请告诉我。
$test = Posts::select('posts.*','users.*', followers.*, follower.name as follower_name
->join('followers', 'posts.user_id', '=', 'followers.follower_id')
->join('users as users', 'followers.user_id', '=', 'users.id')
->join('users as follower', 'followers.follower_id', '=', 'users.id')
->where('users.id', $user->id)
->get();