Я использую Chart. js, чтобы показать общее количество транзакций (количество) за каждый месяц.
$dataTotal = ModelName::select(DB::raw('count(id) as count'), DB::raw("MONTH(created_at) as month"))
->where('org_id', auth()->user()->org_id)
->where('result_code', 200)
->groupBy('month')
->orderBy('month')
->get()
->toArray();
Сам запрос в порядке, за исключением проблемы, что если нет записей в месяц, то он не возвращает 0
за этот месяц. Это приводит к тому, что график не отображается должным образом.
Есть ли у кого-нибудь предложения, как я могу его реализовать, чтобы получать полные наборы результатов?
Желаемый формат:
array (
0 =>
array (
'count' => 0,
'month' => 1,
),
1 =>
array (
'count' => 5,
'month' => 2,
),
2 =>
array (
'count' => 0,
'month' => 3,
),
3 =>
array (
'count' => 4,
'month' => 4,
),
4 =>
array (
'count' => 0,
'month' => 5,
),
5 =>
array (
'count' => 4,
'month' => 6,
),
6 =>
array (
'count' => 51225,
'month' => 7,
),
7 =>
array (
'count' => 4,
'month' => 8,
),
8 =>
array (
'count' => 0,
'month' => 9,
),
9 =>
array (
'count' => 0,
'month' => 10,
),
10 =>
array (
'count' => 0,
'month' => 11,
),
11 =>
array (
'count' => 0,
'month' => 12,
),
)