计算每一天的入场券

时间:2014-06-01 11:27:00

标签: php mysql laravel

我想在过去30天内每天统计所有注册用户。如果没有注册返回0

目前我正在使用此

    $startDate = Carbon\Carbon::now()->subDays(30);
    $signup = User::where('created_at', '>=', $startDate)
        ->groupBy('date')
        ->orderBy('date', 'DESC')
        ->get([
            DB::raw('Date(created_at) as date'),
            DB::raw('COUNT(*) as value')
        ]);
    return $signup;

当前输出

[ 
  { 
    "date" : "2014-05-29",
    "value" : 1
  },
  { 
    "date" : "2014-05-15",
    "value" : 1
  }
]

如果没有注册,则显示值0,例如

[ 
  { 
    "date" : "2014-05-29",
    "value" : 1
  },
  { 
    "date" : "2014-05-28",
    "value" : 0
  },
  { 
    "date" : "2014-05-27",
    "value" : 0
  },
  { 
    .....
    .....
  },
  { 
    "date" : "2014-05-15",
    "value" : 1
  }
  { 
    "date" : "2014-05-14",
    "value" : 0
  }
]

我怎样才能得到这样的结果。

1 个答案:

答案 0 :(得分:1)

将$ result数组按值放在另一个数组值中,如果是lastrowdate - rowdate> 1天,使用此功能填写空日期: https://stackoverflow.com/a/4312491/3696548