以下用户的用户信息

时间:2019-07-18 11:22:50

标签: laravel vue.js lumen

我正在使用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();

您知道我该如何解决吗?

1 个答案:

答案 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();