【发布时间】:2020-02-08 08:33:11
【问题描述】:
我正在尝试为博客创建存档列表。我想要这样的东西:
2020
- 一月 (3)
- 二月 (2)
2019
- 一月 (10)
- 2 月(23 日)
到目前为止,我已经设法将帖子整理到一个显示计数的数组中,但是该数组每个月都单独作为一个数组。我希望它被嵌套,以便年份是父数组,然后每个月都是嵌套的。
$posts_by_date = $blog->hasMany(Post::class)
->where('status', 'published')
->selectRaw('year(created_at) year, month(created_at) month, count(*) count')
->groupBy('year', 'month')
->orderByRaw('created_at') desc')
->get()
->toArray();
有没有办法让组通过嵌套而不是分开?我知道我可以在之后修改结果,我只是认为如果我直接从查询中获取它会更干净。
【问题讨论】:
-
如果您要将所有这些转换为一个数组并使用
selectRaw,为什么不执行 SQL 查询呢?对于这种需求,这会容易得多。 -
@SteveChamaillard 我这样做只是因为我对 sql 查询和 Laravel 缺乏经验。我将如何进行 sql 查询?如果你不介意解释:)