Ho scritto un'applicazione utilizzando Laravel 5.1. L'applicazione è per spazi di parcheggio. "Provvede" agli spazi creando 3 diversi slot disponibili nel database (Mattina, Pomeriggio, Tutto il giorno).Laravel 5.1 Inserimento di più record duplicati nel database
Il problema è che in un aggiornamento rapido della pagina, gli spazi vengono sottoposti a provisioning due volte, con il conseguente inserimento di 6 slot nel database.
Tuttavia, se si aggiorna la pagina dopo un ritardo di 5 secondi, non vengono immessi ulteriori record. La mia istruzione if qui sotto sembra funzionare, non solo quando la pagina/connessione viene aggiornata rapidamente.
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()')]);
}
}
Qualcuno sa perché questo potrebbe accadere?
È sempre possibile aggiungere un filtro prima della richiesta per verificare possibili conflitti di database – IlGala
Ma non capisco perché vengono immessi più volte? C'è una spiegazione da qualche parte? Non ho mai pensato che fosse possibile. – V4n1ll4
Si prega di inviare i percorsi e come vengono gestiti (chiusure e/o azioni del controllore). Se stai postando su un percorso diverso da quello in cui è stata inserita la prenotazione, questo non dovrebbe accadere. – Bogdan