我想显示月份,但是在键中添加月份数和值以添加名称月份。我有这个代码,但问题是,当我预先知道并发送$ key时,它总是给我起名字。任何建议如何解决这个问题?
$archive = [];
$archive_current_year = Articles::where('approved',1)->whereBetween('created_at', [
Carbon::now()->startOfYear(),
Carbon::now()->endOfYear(),
])->get()->groupBy(function($item) {
$archive[Carbon::createFromFormat('Y-m-d H:i:s', $item->created_at)->month] = Carbon::createFromFormat('Y-m-d H:i:s', $item->created_at)->formatLocalized('%B');
return $archive;
});
答案 0 :(得分:1)
您无法按阵列分组。您需要从回调中返回一个字符串。
如果您想按月分组,那么它将是:
$archive = Articles::where('approved',1)->whereBetween('created_at', [
Carbon::now()->startOfYear(),
Carbon::now()->endOfYear(),
])->get();
$archive_by_month->groupBy(function($item) {
return Carbon::createFromFormat('Y-m-d H:i:s', $item->created_at)->month;
});
此外,您不需要在Carbon
中创建groupBy
个实例,默认情况下,Laravel created_at
和updated_at
已经Carbon
实例
return $item->created_at->month;
应该工作得很好。