データベースに2つの時間間隔を保存します。そこではデータベースをチェックし、誰かがすでにその時間を予約していればそれは時間を節約しませんが、空であればユーザーが入力として与える時間を節約します。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');
}
}
それでも私は、特定の時間に教室を予約することができます既にデータベースに入っています – Hola
申し訳ありません仲間と言う必要はありません。しかし、なぜ私は上記のコードでも、私は同じ間隔で教室を予約することはできません。 – Hola
私はあなたが時間に予約されたクラスルームを予約することを望んでいないと思った。上記のコードは、その時間に教室が予約されているかどうかを確認します。そうであれば、1より大きい数を返します。 –