Laravel - 按月分组

时间:2018-03-17 11:45:53

标签: laravel laravel-5

我正在查询我的用户返回它们的列表,这是一个例子

$user_list = DB::table('users')
            ->select('name','email','created_at')
            ->orderBy('created_at')
            ->get();

我看到了正确的结果,但我试图将这些结果拆分,以便按月分组。

是否有人有一些我可以阅读的文档或一些示例代码?

3 个答案:

答案 0 :(得分:2)

试试这个:

$user_list = DB::table('users')
            ->select('name','email','created_at')
            ->orderBy('created_at')
            ->groupBy(DB::raw(MONTH('created_at')))
            ->get();

答案 1 :(得分:0)

文档中有一个部分,您可以在其中找到有关groupBy方法的信息 - method

在你的代码中你可以写这个():

$user_list = User::select('name','email','created_at')
        ->orderBy('created_at')->get();// get User collection
$user_list->groupBy(function ($item, $key) {
   return $item->created_at->format('m');
});

答案 2 :(得分:0)

$groupedUsers = $users->mapToGroups(function ($user, $key) {
    return $user->created_at->month => $user; 
});

这可能比其他一些代码少一些。他们都会工作。在此处,如果您的模型设置正确,则可以将$users替换为User::all()