编程语言
首页 > 编程语言> > javascript-使用Laravel每月接收数据

javascript-使用Laravel每月接收数据

作者:互联网

我正在尝试创建一个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();

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

解决方法:

如果您想要一个雄辩的解决方案,请使用whereMonth():

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

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

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

标签:morris-js,laravel,javascript,php,jquery
来源: https://codeday.me/bug/20191025/1928611.html