私は時間の重複を避けようとしているララベルコントローラを構築しています。Laravel:時間のオーバーラップを回避するにはどうすればよいですか?
public function postAllocateRoom(Request $request)
{
$classRoom = new ClassRoom();
$classRoom->department_id=$request->Input(['department_id']);
$classRoom->room_id=$request->Input(['room_id']);
$classRoom->course_id=$request->Input(['course_id']);
$classRoom->day_id=$request->Input(['day_id']);
$classRoom->start=Carbon::parse(str_replace(array('am', 'pm'), ':00', $request->input('start')));
$classRoom->end=Carbon::parse(str_replace(array('am', 'pm'), ':00', $request->input('end')));
$day = $classRoom->day_id;
$startTime=$classRoom->start;
$endTime=$classRoom->end;
$result=DB::select(DB::raw("SELECT * FROM `allocate_rooms`
WHERE start='$startTime' AND end='$endTime' AND day_id='day'"));
if (sizeof($result)>0) {
flash()->error('Class Room Already Taken.');
return redirect('allocateRoomPage');
}
else {
$classRoom->save();
flash()->success('Successfully allocated room.');
return redirect('allocateRoomPage');
}
}
をここに私のコントローラのクエリで最初に私が入力したデータベースと一致しているようday_idが与えられているかどうかをチェックします:私は私のコントローラで正常にクエリを実行することができなかったとして、しかし、私は私のクエリでの問題に直面していますそのday_idをチェックし、それが時間と一致するかどうかをチェックします。結果が複数になると、ユーザーは入力を保存できません。そうでなければ、クエリが失敗した場合、ユーザーはデータを保存できます。
私は質問に直面しています。いずれかが解決策を見つけるのに役立つ場合。
質問にはどのような問題がありますか?正確なエラーメッセージを投稿してください。 – codedge