我正在使用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获取被关注用户的数据,这样我就可以将其显示在登录用户的提要中。因此,我只能显示帖子的内容,但不能在提要中显示帖子的所有者。
我也认为没有必要查看登录用户的用户名和其他数据,但我不能以另一种方式做到这一点。我还尝试在Posts模型中建立一些关系
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();
你知道我怎么解决这个问题吗?
发布于 2019-07-21 20:15:44
追随者也是用户,因此在这种情况下,您可以通过提供不同的名称来加入用户两次。我做了一个查询,您可以尝试或修复它以供您使用。我想你已经明白了,如果我遗漏了什么,就让我知道。
$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();
https://stackoverflow.com/questions/57093321
复制相似问题