इस समाधान ने मेरे लिए काम किया, मैंने पहली बार समय सीमा में सभी तिथियों के साथ एक सरणी बनाई, तारीखों को कुंजी के रूप में सेट किया गया और मानों को 0 के रूप में सेट किया गया, और फिर डीबी में क्वेरी के बाद मानों को बदल दिया गया, उसी सरणी में गिनती के साथ क्वेरी से मान:
$period = new DatePeriod( new DateTime($from), new DateInterval('P1D'), new DateTime($to));
$dbData = [];
foreach($period as $date){
$range[$date->format("Y-m-d")] = 0;
}
$data = DB::table($request['option'])
->select(DB::raw('DATE(created_at) as time'), DB::raw('count(*) as count'))
->whereDate('created_at', '>=', date($from).' 00:00:00')
->whereDate('created_at', '<=', date($to).' 00:00:00')
->groupBy('time')
->get();
foreach($data as $val){
$dbData[$val->time] = $val->count;
}
$data = array_replace($range, $dbData);
}
return json_encode($data);