5
我已經使用Laravel 5.1編寫了一個應用程序。該應用程序用於停車位。它通過在數據庫中創建3個不同的可用插槽(「上午」,「下午」,「全天」)來「規定」空間。Laravel 5.1輸入多個重複記錄到數據庫中
問題是,在快速頁面刷新時,空間被調配兩次,導致6個槽進入數據庫。
但是,如果在5秒延遲後刷新頁面,則不會輸入其他記錄。我的if語句似乎工作,而不是當頁面/連接快速刷新時。
foreach($bays as $bay) {
if(!BookingDates::where('date', $date)->where('parking_bay', $bay->number)->count()) {
BookingDates::insert(['parking_bay' => $bay->number, 'date' => $date, 'slot' => 'Morning', 'time' => '7am - 1pm', 'status' => 'Available', 'created_at' => DB::raw('now()')]);
BookingDates::insert(['parking_bay' => $bay->number, 'date' => $date, 'slot' => 'Afternoon', 'time' => '1pm - 7pm', 'status' => 'Available', 'created_at' => DB::raw('now()')]);
BookingDates::insert(['parking_bay' => $bay->number, 'date' => $date, 'slot' => 'All Day', 'time' => null, 'status' => 'Available', 'created_at' => DB::raw('now()')]);
}
}
有沒有人知道爲什麼會發生這種情況?
您可以在請求前添加一個過濾器,以檢查可能的數據庫衝突 – IlGala
但我不明白他們爲什麼要輸入多次?有什麼解釋嗎?我從來沒有想過這是可能的。 – V4n1ll4
請張貼您的路線,以及他們如何處理(關閉和/或控制器操作)。如果您發佈的路由與輸入預訂的路由不同,則不會發生此情況。 – Bogdan