Я получил таблицу с расписанием для каждого предмета. Я хочу, чтобы графики были уникальными или не дублировались. Я получил столбец для room
, teacher
, time
, day
и checker
, который назначен для проверки расписания. Хотите, чтобы расписание не конфликтовало с time
, room
, teacher
, checker
и day
с понедельника по пятницу.
Я попытался проверить свой код в контроллере, но он Кажется, не работает. Даже если я обновляю повторяющееся расписание, оно переходит к исключению, которое я установил, но в коде состояния оно равно 200. Может кто-нибудь знать, в чем проблема этого?
Мой контроллер
public function update(Request $request, Schedule $schedule, $id)
{
$schedule = Schedule::findOrFail($id);
$days = implode(",", $request->day);
//days = Mon,Tue,Wed,Thu,Fri,Sat
//time = eg. 12:30 PM
$forlike = "((schedules.day like '%" .
str_replace(",", "%') or (schedules.day like '%",
str_replace(' ', '', $days)) . "%'))";
$validate = Schedule::whereRaw($forlike)
->where('subject_code_id',$request->subject_code_id)
->where('teacher_id',$request->tid)
->where('room_id',$request->room_id)
->where('start_time','<',strtotime($request->end_time))
->where('end_time','>',strtotime($request->start_time))
->where('school_year',$request->school_year)
// ->where('day',$request->day)
->where('term',$request->term)
->where('semester',$request->semester)
->where('student_id',$request->student_id)
->first();
if(!empty($validate)){
throw new \ErrorException('Record Exist');
} else{
$schedule->subject_code_id = $request->subject_code_id;
$schedule->teacher_id = $request->tid;
$schedule->room_id = $request->room_id;
$schedule->start_time = $request->start_time;
$schedule->end_time = $request->end_time;
$schedule->school_year = $request->school_year;
$schedule->semester = $request->semester;
$schedule->term = $request->term;
$schedule->day = $days;
$schedule->student_id = $request->student_id;
$schedule->save();
}
Внешний интерфейс
updateSchedule() {
let params = {day: this.day}
axios.put('/updateSchedule/' + this.form.scid,{
tid: this.tid.id,
room_id:this.room_id.id,
start_time: this.form.start_time,
end_time: this.form.end_time,
day: this.day,
term: this.form.term,
semester: this.form.semester,
subject_code_id: this.sc_code.id,
school_year: this.form.school_year,
student_id: this.student_id.id
})
.then(() => {
swal.fire("Record Updated!", "", "success");
$('#exampleModal').modal('hide');
$('#exampleModal').modal('close');
$(".modal-backdrop").remove();
this.getSchedulesPagination()
})
.catch((e) => {
console.log(e.status)
swal.fire("Record Exist", "", "warning");
$('#exampleModal').modal('hide');
$(".modal-backdrop").remove();
this.getSchedulesPagination()
})
}
Что я получаю, когда обновляю дублированный график