Tôi đã viết một ứng dụng bằng cách sử dụng Laravel 5.1. Ứng dụng này dành cho chỗ đậu xe. Nó "quy định" các khoảng trống bằng cách tạo ra 3 khe có sẵn khác nhau trong cơ sở dữ liệu (Buổi sáng, Buổi chiều, Cả ngày).Laravel 5.1 nhập nhiều bản ghi trùng lặp vào cơ sở dữ liệu
Sự cố là khi làm mới trang nhanh, các khoảng trống được cấp phép hai lần, dẫn đến 6 vị trí được nhập vào cơ sở dữ liệu.
Tuy nhiên, nếu tôi làm mới trang sau khoảng thời gian trễ là 5 giây, không có thêm bản ghi nào được nhập vào. Câu lệnh if của tôi bên dưới dường như hoạt động, không phải khi trang/kết nối được làm mới nhanh chóng.
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()')]);
}
}
Có ai biết tại sao điều này có thể xảy ra không?
Bạn cũng có thể thêm bộ lọc trước khi yêu cầu để kiểm tra các xung đột cơ sở dữ liệu có thể xảy ra – IlGala
Nhưng tôi không hiểu tại sao chúng lại được nhập nhiều lần? Có lời giải thích nào đó không? Tôi chưa bao giờ nghĩ điều này là có thể. – V4n1ll4
Vui lòng đăng tuyến đường của bạn và cách chúng được xử lý (các hành động đóng và/hoặc điều khiển). Nếu bạn đã đăng lên một tuyến đường khác mà bạn đã đăng nhập, điều này sẽ không xảy ra. – Bogdan