在Laravel应用程序中,我有Users
和Posts
。我想做的是检查用户注销时是否创建了任何帖子,然后显示类似于Twitter的消息“这里是您错过的内容”。
我当时正在考虑创建一个名为missed_content
的表,其中包含用户ID,模型和模型ID,我将循环浏览给定用户并显示错过的内容。
因此,如果帖子的created_at
日期晚于用户的last_login_at
日期,则计划任务将查找新内容并将行添加到该表中。
然后,当用户登录时,我将显示内容并更新last_login_at
。
我担心的是,这是否可以扩展,就像一百万用户错过了20条帖子(即2000万条记录)一样。
答案 0 :(得分:0)
为什么不最后一次登录用户。然后获取该日期之后发布的所有帖子?
$posts = Post::where('created_at', '<=', Auth::user()->last_sign_in)->get()
在刀片中您可以数数
<p>You have missed: {{ $posts->count() }} posts</p>
您不需要额外的桌子