Я пытаюсь найти данные о посещаемости учащегося с помощью идентификатора учащегося и даты из цикла, которая является интервалом, полученным из пользовательского ввода.Но это не работает должным образом.
$newarray=array();
while(date('Y-m-d',strtotime($start_date1))<=date('Y-m-d',strtotime($end_date1))){
$attendancedate = new \MongoDate(strtotime(date($start_date1)));
$date_exists = $dm->createQueryBuilder('App\Document\studentattendancelog')
->field('pgmbatchid')->equals($programbatchid)
->field('collegeid')->equals($collegeid)
->field('termid')->equals($termid)
->field('studentid')->equals($studentid)
->field('attendenceday')->equals($attendancedate)
->field('delstatus')->equals(1)
->eagerCursor(true)
->getQuery()->toArray();
$hours = array();
$harray=array();
$arr1 = array();
if($date_exists){
$hours = $date_exists[0]->getHourlylog();
foreach($hours as $hour){
array_push($harray,$hour['hourlystatus']);
$arr1=array('day' => date('Y-m-d',strtotime($start_date1)),'value'=> $harray);
}array_push($newarray,$arr1);
}
else{
for($i=1;$i<=5;$i++){
$stat = '--';
array_push($harray, $stat);
$arr1=array('day' => date('Y-m-d',strtotime($start_date1)),'value'=> $harray);
}array_push($newarray,$arr1);
}
$start_date1 = date("Y-m-d", strtotime($start_date1. "+1 day"));
}
Так как мы пропускаем интервалы дат здесь, поэтому он должен отображать все даты, когда несуществующие даты из базы данных должны показывать результаты с "-" для пятичасы и существующие даты, которые являются датами посещаемости, должны показывать статус тех часов, которые присутствуют или отсутствуют.