主页上显示所有关注用户的微博动态

我们在前面章节中已经为用户定义了 Feed 动态流方法,只是该方法比较粗略,只是显示当前登录用户的个人微博状态而已。现在我们要对该方法进行完善,加入关注人的微博动态数据。

app/Models/User.php

followings->pluck('id')->toArray();
        array_push($user_ids, Auth::user()->id);
        return Status::whereIn('user_id', $user_ids)
                              ->with('user')
                              ->orderBy('created_at', 'desc');
    }
    .
    .
    .
}

上面的方法做了以下几个事情:

  • 通过 followings 方法取出所有关注用户的信息,再借助 pluck 方法将 id 进行分离并赋值给 user_ids;

  • 将当前用户的 id 加入到 user_ids 数组中;

  • 使用 Laravel 提供的 查询构造器 whereIn 方法取出所有用户的微博动态并进行倒序排序;

  • 使用了 Eloquent 关联的 预加载 with 方法,预加载避免了 N+1 查找的问题
    ,大大提高了查询效率。N+1 问题 的例子可以阅读此文档 Eloquent 模型关系预加载 。

整个项目的开发到此完成。

你可能感兴趣的:(主页上显示所有关注用户的微博动态)