我想在我的數據庫中保存兩個時間間隔。在那裏它將檢查數據庫,並且如果有人已經預訂了那個時間,它不會節省時間,而如果它是空的,則將節省用戶將作爲輸入提供的時間。php - laravel:如何處理數據庫中的時間重疊?
例如,用戶想要預定時間表8:00到8:30,同時保存到 數據庫,它將在數據庫中檢查是否有人已經採取 那個時間,如果不是,那麼它將保存,否則它不會。同時 用戶即使在8:15也不能輸入。
我該如何解決這個重疊問題?
這裏是我用的控制器代碼,它不運行,雖然:首先
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=$request->Input(['start']);
$classRoom->end=$request->Input(['end']);
$startTime = Carbon::parse($request->input('start'));
$endTime = Carbon::parse($request->input('end'));
$classRoomCount = ClassRoom::where(function ($query) {
$query->where('start', '>=', $startTime)
->where('end', '<=', $startTime); })->count();
$messages ="Class Room Already Taken";
if ($classRoomCount > 0) {
return redirect('allocateRoomPage',$message);
}
else {
$classRoom->save();
return redirect('allocateRoomPage');
}
}
我仍然可以預訂教室在一定時間這已經在db – Hola
沒有必要說對不起兄弟,你只是幫助,這是你的偉大。但我不明白爲什麼你在上面的代碼,我也可以用相同的時間間隔教室。 – Hola
我以爲你不希望能夠預訂一間已經預訂的課室。上述代碼將檢查當時是否已經預訂了教室。如果有它會返回一個大於1的計數。 –