【发布时间】:2014-01-16 02:49:44
【问题描述】:
我有一个名为“posts”的表,其中包含以下列:“post_id int primary increments”、“poster_id int”和“status text”,还有一个名为“friends”的数组,其列:“user_id int primary”和“friend_ids”文本'。
我需要获取朋友文本列中的所有 ID,这很容易使用:
$friends = explode(',', \Friend::where('user_id', \Sentry::getUser()->id)->first()->friend_ids);
文本列中的数据看起来像“1、2、3”等。
然后我创建一个 Eloquent Collection 对象,这也很容易通过以下方式完成:
$posts = new \Illuminate\Database\Eloquent\Collection();
但问题是我不知道如何填充集合并按 Post 对象的“created_at”列对其内容进行排序。
这是我目前拥有的:
foreach ($friends as $id) {
$posts_ = \Post::where('poster_id', $id)->getQuery()
->orderBy('created_at', 'desc')
->get();
foreach($posts_ as $post) {
$posts->add($post);
}
}
我无法确定此代码是否适用于按“created_at”列对整个帖子集合进行排序。我还需要能够轻松地对整个集合进行分页。
推荐的收藏排序方式是什么?
【问题讨论】:
标签: php collections laravel laravel-4 eloquent