1
0
mirror of https://github.com/robonen/education-project.git synced 2026-03-20 10:54:31 +00:00

по умолчанию возврат на текущую неделю

This commit is contained in:
nikden13
2020-12-10 00:14:00 +07:00
parent 127da069bd
commit 2e2942e42c
2 changed files with 22 additions and 8 deletions

View File

@@ -30,11 +30,12 @@ class TimetableFilter extends QueryFilter
protected function date($value) protected function date($value)
{ {
$start_date = str_replace('/', '-', $value); $formatValue = str_replace('/', '-', $value);
$end_date = Carbon::parse($start_date) $weekStartDate = Carbon::parse($formatValue)->startOfWeek()->format('Y-m-d');
$weekEndDate = Carbon::parse($weekStartDate)
->addDays(5) ->addDays(5)
->format('Y-m-d'); ->format('Y-m-d');
$this->builder = $this->builder->whereBetween('date', [$start_date, $end_date]); $this->builder = $this->builder->whereBetween('date', [$weekStartDate, $weekEndDate]);
} }
} }

View File

@@ -20,6 +20,15 @@ class TimetableController extends Controller
]); ]);
$builder = Timetable::all()->sortBy('timeStart'); $builder = Timetable::all()->sortBy('timeStart');
$timetables = (new TimetableFilter($builder, $request))->apply()->values(); $timetables = (new TimetableFilter($builder, $request))->apply()->values();
if (!$request->filled('date')) {
$now = Carbon::now();
$weekStartDate = $now->startOfWeek()->format('Y-m-d');
$weekEndDate = Carbon::parse($weekStartDate)
->addDays(5)
->format('Y-m-d');
$timetables = $timetables->whereBetween('date', [$weekStartDate, $weekEndDate]);
}
$filterTimetables = collect([]); $filterTimetables = collect([]);
foreach ($timetables as $timetable) { foreach ($timetables as $timetable) {
$subject = $timetable->subject->name; $subject = $timetable->subject->name;
@@ -36,12 +45,16 @@ class TimetableController extends Controller
'class' => $class, 'class' => $class,
]); ]);
} }
$dateTimetables = []; $dateTimetables = [];
for ($i = 0; $i < 6; $i++) { if (!$filterTimetables->isEmpty()) {
$date = Carbon::parse($request->input('date')) for ($i = 0; $i < 6; $i++) {
->addDays($i) $date = Carbon::parse($request->input('date'))
->format('Y-m-d'); ->startOfWeek()
array_push($dateTimetables, [$date => $filterTimetables->where('date', $date)->values()]); ->addDays($i)
->format('Y-m-d');
array_push($dateTimetables, [$date => $filterTimetables->where('date', $date)->values()]);
}
} }
return response()->json($dateTimetables, 200); return response()->json($dateTimetables, 200);
} }