2016-12-27 50 views
0

我想显示月份,但在关键要添加月份和价值添加名称月份。我有这个代码,但问题是,当我foreach和显示$键它总是给我的名字。任何建议如何解决这个问题?如何添加为关键一个值,作为值别的东西?

$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; 
    }); 

回答

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; 
}); 

而且,你不需要在groupBy在Laravel created_at创建Carbon情况下,在默认情况下并updated_at已经Carbon实例。

return $item->created_at->month; 

应该工作得很好。

相关问题