【问题标题】:Receive data per month with Laravel使用 Laravel 每月接收数据
【发布时间】:2018-06-22 06:17:15
【问题描述】:

我正在尝试创建一个显示每月数据的 morrisJS 折线图。 所以我每月得到这样的数据:

        $intakes = Intakes::whereYear('created_at', '=', 2018)
        ->orWhere(function ($query) {
            $query->whereMonth('created_at', '=', 1)
                ->whereMonth('created_at', '=', 2)
                ->whereMonth('created_at', '=', 3)
                ->whereMonth('created_at', '=', 4)
                ->whereMonth('created_at', '=', 5)
                ->whereMonth('created_at', '=', 6)
                ->whereMonth('created_at', '=', 7)
                ->whereMonth('created_at', '=', 8)
                ->whereMonth('created_at', '=', 9)
                ->whereMonth('created_at', '=', 10)
                ->whereMonth('created_at', '=', 11)
                ->whereMonth('created_at', '=', 12);
        })
        ->get();

但这将返回所有记录,范围从第 1 个月到第 12 个月。但我想要的是每月的数据,除了像这样创建多个变量之外还能实现吗?

          $intakesMonth1 = Intakes::whereYear('created_at', '=', 2018)
            ->whereMonth('created_at', '=', 1)
            ->get();

          $intakesMonth2 = Intakes::whereYear('created_at', '=', 2018)
            ->whereMonth('created_at', '=', 2)
            ->get();

我希望我足够清楚,并且有人知道更好的解决方案。

【问题讨论】:

    标签: javascript php jquery laravel morris.js


    【解决方案1】:

    如果您想要 Eloquent 解决方案,请使用 whereMonth()

    for($i = 1; $i < 13; $++) {
        $intakes[$i] = Intakes::whereMonth('created_at', $i)->get();
    }
    

    您也可以,获取当年的所有摄入量,然后使用where() Laravel Collections 方法获取仅一个月的摄入量:

    $oneMonthData = $collection->where('created_at', '>', Carbon::parse($someDateString)->startOfMonth())->where('created_at', '<', Carbon::parse($someDateString)->endOfMonth());
    

    【讨论】:

    • 这是一种更聪明的方式,是的,但我希望他们在 ajax 中获取它们,然后我必须返回 12 个变量。但这绝对是一个比不遍历它们更好的解决方案。
    • @frogeyedman 它将为您提供一个包含 12 个集合的数组,您可以将其转换为 JSON。
    【解决方案2】:
     $intakes = Intakes::whereDate('created_at', '<=', '01-01-2018 00:00:00')->whereDate('created_at', '<=', '01-02-2018 23:59:59')->get();
    

    【讨论】:

      猜你喜欢
      • 2023-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多