【问题标题】:How to Store Each date Records in Array laravel如何在数组 laravel 中存储每个日期记录
【发布时间】:2021-06-18 19:42:12
【问题描述】:

$gno =head::select('point')->where('DATE', '>', Carbon::now()->subDays(7))-> orderBy('DATE','desc')->get();

return $gno;

上面的代码从点列返回过去 7 天的记录,我计算了这个 使用下面的代码

 $gcs=$gno->count();
  $gccount=explode(', ', $gcs);
  return $gccount;

其返回 ["36"] 计为 7 天记录 但我期望: 我想将每个日期记录计数存储为数组示例,例如 ["5","15","20","12","4","2","4"] 从今天开始算作我认为这将通过使用循环来完成 但我不知道如何修复它??谢谢

【问题讨论】:

  • 你想要数据日期吗?对吗?
  • 是从今天到过去的日子
  • 然后简单地按日期和计数分组。
  • 不知道怎么办?
  • 检查答案。

标签: php laravel


【解决方案1】:

我认为您必须阅读Laravel collection methods,这有助于在此处按日期获取数据。

我们首先通过order by子句获取基础数据。

然后数据库集合通过查询返回,我们可以使用集合'groupBy, map, values, and implode函数获取相应的数据。

$gno = head::select('point', 'DATE')->where('DATE', '>', Carbon::now()->subDays(7))->orderBy('DATE','desc')->get();
$gnoByCount = $gno->groupBy('DATE')->map(function($g) {
    return $g->count();
})->values()->implode(',');

var_dump($gnoByCount);

【讨论】:

  • 我想根据图表中的日期返回记录计数
  • 您的答案返回保存天数的总和,但我想在数组中打印 7 天的记录数 例如 ["5","15","20","12","4" ,"2","4"]
  • 不,它将返回数组,其中每个元素返回该特定日期的记录数。
  • 远程这个->values()->implode(','); 并确认记录是日期明智的,关键是日期。
  • var_dump 不是var_dumb
【解决方案2】:

如果您只想要points 的数组,那么您可以使用pluck

$gno = head::select('point')
        ->where('DATE', '>', Carbon::now()->subDays(7))
        ->orderBy('DATE','desc')
        ->get();

$gno->pluck('points')->toArray();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2015-12-10
    • 2021-05-25
    相关资源
    最近更新 更多