У меня есть вопрос, поэтому я хочу построить диаграмму, состоящую из количества посетителей по дате;
У меня в базе данных
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();
Пожалуйста, помогите мне. Спасибо заранее
Вы можете использовать здесь:
$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
использовать следующий
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")