Laravel - 按created_at字段对数据进行分组并应用分页

时间:2016-11-26 08:43:31

标签: php laravel laravel-5.2 laravel-5.1

我需要获得用户之前10天的活动。在我的情况下,我只获得了10个活动记录而不是之前的10天活动。

*我的代码:

$activity   = $this->where('user_id', '=', $userId)->paginate(10);

$activities = collect($activity->items())->groupBy(function($item) {
    return \Carbon\Carbon::parse($item->created_at)->format('d-M-Y');
});

$activity->setCollection($activities);

dd($activity->toArray());

输出:

enter image description here

1 个答案:

答案 0 :(得分:0)

您正在使用paginate,它限制从DB获取的结果数。如果您想获得用户之前10天的活动,那么您可以将查询编写为:

$activity = $this->where('user_id', '=', $userId)
                ->where('created_at', '>=', \Carbon\Carbon::now()->subDays(10))
                ->get();