public function scheduled(Request $reqest) { $this->view->title = "Job Schedule"; $this->view->breadcrumbs = ['job-lists' => 'Job Lists', 'job-lists/scheduled' => 'Scheduled']; $startDate = new \DateTime($reqest->input('start_date')); $endDate = new \DateTime($reqest->input('end_date')); if ($startDate->diff($endDate, true)->d < 7) { $endDate->add(new \DateInterval('P14D')); } $datePeriod = new \DatePeriod($startDate, new \DateInterval('P1D'), $endDate); $this->view->start_date = $startDate->format('Y-m-d'); $this->view->end_date = $endDate->format('Y-m-d'); $this->view->job_lists = []; $jobLists = JobList::whereBetween('start_date', [$this->view->start_date, $this->view->end_date])->groupBy(['crew_id', 'start_date'])->get(); foreach ($jobLists as $jl) { if (!isset($this->view->job_lists[$jl->crew->name])) { $this->view->job_lists[$jl->crew->name] = []; } $this->view->job_lists[$jl->crew->name][$jl->start_date] = $jl; } $this->view->dates = $datePeriod; $this->view->crews = Crew::query()->orderBy('name')->get(); return $this->view; }