如何添加键值作为其他值?

时间:2016-12-27 12:29:26

标签: laravel laravel-5 laravel-5.2

我想显示月份,但是在键中添加月份数和值以添加名称月份。我有这个代码,但问题是,当我预先知道并发送$ 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;
  });

1 个答案:

答案 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_atupdated_at已经Carbon实例

 return $item->created_at->month;

应该工作得很好。