PHP Laravel高效饲料生成

时间:2014-04-17 01:13:29

标签: php sql orm laravel eloquent

好吧,所以我有一个基于Feed的网络应用,有点像 facebook 新闻Feed 。问题在于我生成Feed的方式。我不确定这是最有效和/或最好的方式。

我使用Laravel + Eloquent ORM

$feed = Post::whereIn('id', $following_ids)
                        ->orderBy('created_at', 'desc')
                        ->take(20)
                        ->skip($page)
                        ->get();

其中$following_ids是用户关注的ID数组。

问题在于,据我所知,上述语句生成的SQL会导致您所关注的用户首先加载每个帖子,然后按时间顺序排序,只有实际使用的小子集。

有没有更有效的方法来做到这一点?这看起来真的很浪费。

1 个答案:

答案 0 :(得分:2)

你应该看看我写的这个包:https://github.com/GetStream/stream-laravel;它与您的Eloquent模型集成,并将数据存储在Feed中。

使用相同的套餐,您可以让用户关注其他Feed并创建类似于Facebook的新闻源(或Twitter)的功能。