首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel groupBy

Laravel groupBy
EN

Stack Overflow用户
提问于 2014-08-30 09:14:19
回答 2查看 1.1K关注 0票数 1

我正试图重新设计我的Laravel4.2代码,并希望根据过去几天的结果列出一个列表。

代码:

代码语言:javascript
复制
public function getTrending($type = null, $category = null)
{
    $posts = $this->posts($type, $category)->with('comments', 'votes', 'category', 'user', 'votes.user')
        ->leftJoin('votes', 'posts.id', '=', 'votes.post_id')
        ->leftJoin('comments', 'posts.id', '=', 'comments.post_id')
        ->select('posts.*', DB::raw('count(comments.post_id)*7 + count(votes.post_id)*30 + posts.views as popular'))
        ->groupBy('posts.id')->with('user')->orderBy('popular', 'desc')->whereMonth('posts.created_at', '>=', date('n', strtotime('-1 month')))
        ->paginate(perPage());

    return $posts;
}

我想分组结果,因为它是(相关性:评论,投票,访问)+分组的结果在一个日常的基础上。

比如:

今天(有日期xx.xx.xx)

  • 结果1(最高票数、评论、.)
  • 结果2
  • 结果3

昨天(附日期xx.xx.xx)

  • 结果4(最高票数、评论、.)
  • 结果5
  • 结果6

这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2014-12-18 09:06:30

你可以使用碳;

代码语言:javascript
复制
->groupBy(function($date) {
        return Carbon::parse($date->created_at)->format('Y'); // grouping by years
        //return Carbon::parse($date->created_at)->format('m'); // grouping by months
    });
票数 0
EN

Stack Overflow用户

发布于 2014-08-30 09:32:21

不,我不相信你能在这样的一个查询中把你的数据分组。

假设您的代码为您提供了您想要的数据集,而不按日期分组,我将遍历我想要的日期,并获取每天的数据,并将其格式化为日期标题等。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25580829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档