【问题标题】:How to add as key one value, as value something else?如何添加一个关键值,作为其他值?
【发布时间】:2016-12-27 21:03:19
【问题描述】:

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

【问题讨论】:

    标签: laravel laravel-5 laravel-5.2


    【解决方案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 中创建Carbon 实例,在 Laravel 中默认created_atupdated_at 已经是Carbon 实例。

     return $item->created_at->month;
    

    应该可以正常工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2021-04-05
      相关资源
      最近更新 更多