По сути, я хочу отобразить свой график следующим образом:
![enter image description here](https://i.stack.imgur.com/ERexO.png)
В сказанных диаграммах слияния мои данные должны быть такими, чтобы они отображались
"data": [{
"label": "January 21, 2020",
"value": "3"
},
{
"label": "January 22, 2020",
"value": "1"
},
{
"label": "January 23, 2020",
"value": "2"
},
{
"label": "January 24, 2020",
"value": "1"
},
Но в моем запросе вот так
public function getGraph(){
$ext = \DB::table('checkers')
->where('remarks_id',2)
->join('schedules','schedules.id','=','checkers.schedule_id')
->join('teachers','schedules.teacher_id','=','teachers.id')
->where('schedules.teacher_id',1)
->count();
$date = \DB::table('checkers')
->where('remarks_id',2)
->select(\DB::raw("DATE_FORMAT(checkers.created_at, '%M %d, %Y') date "))
->join('schedules','schedules.id','=','checkers.schedule_id')
->join('teachers','schedules.teacher_id','=','teachers.id')
->get();
return response()->json([
'count' => $ext,
'date' => $date
]);
}
Примечание remarks_id = 2
и teacher_id
основаны на выбранном мной учителе.
Результат такой:
{
"count": 1,
"date": [
{
"date": "January 21, 2020"
},
{
"date": "January 23, 2020"
}
]
}
Там написано count : 1
, но правильное значение равно двум, потому что две даты указаны как отсутствующие.
вот мои таблицы, включенные шашки
+----+-------------+---------+------------+---------------------------+---------------------+------------+------------+
| id | schedule_id | user_id | remarks_id | status | created_at | updated_at | deleted_at |
+----+-------------+---------+------------+---------------------------+---------------------+------------+------------+
| 1 | 1 | 1 | 2 | Round 1 and 2 For sched 1 | 2020-01-21 00:00:00 | NULL | NULL |
| 5 | 3 | 1 | 9 | Schedule 3 | 2020-01-22 00:00:00 | NULL | NULL |
| 6 | 2 | 1 | 2 | Schedule 2 | 2020-01-23 00:00:00 | NULL | NULL |
+----+-------------+---------+------------+---------------------------+---------------------+------------+------------+
When I was going to get the absent, i used `created_at` column for displaying the dates, I used `DATE_FORMAT(created_at)` in order to format it.
Расписания
+----+-----------------+------------+---------+-------------+------------+----------+-----------+
| id | subject_code_id | teacher_id | room_id | school_year | start_time | end_time | day |
+----+-----------------+------------+---------+-------------+------------+----------+-----------+
| 1 | 1 | 1 | 1 | 2020 | 10:30 PM | 12:30 AM | M-T-W-T-F |
| 2 | 2 | 2 | 2 | 2020 | 5:30 PM | 6:30 PM | M-T-W-T-F |
| 3 | 3 | 1 | 3 | 2020 | 10:30 PM | 11:30 AM | SAT |
+----+-----------------+------------+---------+-------------+------------+----------+-----------+
Я просто хочу составить график отсутствий сотрудника в день и считать его, я не знаю, почему у меня count 1
есть две даты, так что teacher_id = 1
имеет два отсутствия. как вы можете видеть в шашках, remarks_id = 2
означает отсутствие для teacher_id = 1
в schedules
.
у teacher_id = 1
есть два расписания, которые 1
и 3
в таблице schedules
.. и вы можете видеть в checkers
есть schedule_id = 1
и 3
, что для teacher_id = 1
Как мне сделать так, чтобы он отображался на линейных графиках? Запрос кажется сложным для меня. Я надеюсь, вы понимаете, о чем я. А также, если у учителя есть два расписания, и он отсутствует на день, его счет за этот день будет 2
, поскольку у него есть два графика. Спасибо за помощь.