2014-11-10 5 views
0

У меня есть вопрос, поэтому я хочу построить график, составленный для подсчета посетителей по дате; У меня есть в моей базе данныхПодсчитайте посетителей за месяц

id   created_at 
1   2014-11-09 
2   2014-11-10 
3   2014-11-08 
4   2014-10-01 
5   2014-10-05 

Так что я хочу, чтобы получить

3 november 
2 octomber 

Я хочу построить в Laravel, мой код:

$aVisitors = $oVisitor::select([ 
          DB::raw('DATE(created_at) AS date'), 
          DB::raw('COUNT(id) AS count'), 
          ]) 
          ->groupBy('date') 
          ->orderBy('date', 'ASC') 
          ->get(); 

Пожалуйста, помогите мне. Thx заранее

ответ

0

Вы можете использовать здесь:

$aVisitors = $oVisitor::select([ 
    DB::raw("DATE_FORMAT(created_at, '%Y-%m') AS `date`"), 
    DB::raw('COUNT(id) AS count'), 
    ]) 
    ->groupBy('date') 
    ->orderBy('date', 'ASC') 
    ->get(); 

Это даст вам что-то вроде этого:

2014-07 1 
2014-08 1 
2014-09 1 
2014-10 5 
+0

я получаю только один результат 2014-09 6 – user3348229

+0

@ user3348229 показать, как вы показываете эти данные –

+0

echo json_encode ($ aVisitors); [Object {date = "2014-09", count = 6}] – user3348229

0

использовать следующий

GROUP BY DATE_FORMAT(created_at, '%Y-%d') 

или это

GROUP BY YEAR(created_at), MONTH(created_at) 

в вашем коде Laravel это должно быть что-то вроде этого

->groupBy('YEAR(created_at), MONTH(created_at)') 

также вы можете получить название месяца непосредственно от mysql

DB::raw("DATE_FORMAT(created_at, '%M') as monthName") 
Смежные вопросы