在Laravel中,可以使用groupBy()
和orderBy()
方法来实现按月分组并按日期排序的查询。下面是一个示例:
$posts = Post::selectRaw('MONTH(created_at) as month, YEAR(created_at) as year, COUNT(*) as total')
->groupBy('year', 'month')
->orderBy('year', 'desc')
->orderBy('month', 'desc')
->get();
上面的代码将从Post
模型中选择created_at
字段的月份和年份,并计算每个月份的总记录数。然后使用groupBy()
方法按照年份和月份进行分组。最后,使用orderBy()
方法按照年份和月份进行降序排序。
你可以根据自己的需求调整查询条件和排序方式。在返回的结果中,每个月份的记录将按照年份和月份的降序顺序排列。
希望这个解决方案对你有所帮助!