【问题标题】:laravel result array of arraylaravel 数组的结果数组
【发布时间】:2017-07-08 00:51:09
【问题描述】:

我有这个雄辩的问题

$data= \App\Logs::select('id', 'created_at') 
    ->get()         
    ->groupBy(function($val) {
        return Carbon::parse($val->created_at)->format('d-M-');
    })->toArray();

这会重新调整类似的东西

array:2 [▼
  "06-Jul-" => array:1 [▼
    0 => array:2 [▼
      "id" => 1
      "created_at" => "2017-07-06 13:21:15"
    ]
  ]
  "07-Jul-" => array:3 [▼
    0 => array:2 [▼
      "id" => 2
      "created_at" => "2017-07-07 13:43:23"
    ]
    1 => array:2 [▼
      "id" => 3
      "created_at" => "2017-07-07 14:18:36"
    ]
    2 => array:2 [▼
      "id" => 4
      "created_at" => "2017-07-07 14:18:41"
    ]
  ]
]

我只想返回计数
"06-Jul-" => "1"
“07-7 月-” => “3”

我该怎么做?

【问题讨论】:

  • 试试这个\App\Logs::select('count(id) as count, 'created_at') ->groupBy('created_at')->toArray()
  • 你可以试试->only("id")而不是->toArray()
  • @AdnanMumtaz 如果我使用 groupby ('created_at') 我不能按天分组

标签: laravel laravel-5 eloquent laravel-eloquent


【解决方案1】:

您可以在groupBy 之后使用/链接map/transform,例如:

$data = \App\Logs::select('id', 'created_at') 
->get()         
->groupBy(function($val) {
    return Carbon::parse($val->created_at)->format('d-M-');
})
->transform(function ($collection, $key) {
    return $collection->count();
});

【讨论】:

    猜你喜欢
    • 2016-06-09
    • 2016-03-22
    • 1970-01-01
    • 2012-02-29
    • 2020-08-21
    • 2020-05-06
    • 2021-03-25
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多