2016-08-16 1 views
0

Beispiel: Wenn ein Benutzer das 'Profil' Taste (die Umleitungen an /profile Strecke) klickt, so dass im Grunde das Web wie diese Abfrage wird (‚select * from Profil where id = 1) . Soweit mein Chef betrifft, möchte er nicht, dass die Datenbank mit Abfrageanforderung überflutet wird. Er möchte ein Zeitlimit von 20 Sekunden. Wenn also ein Benutzer weniger als 20 Sekunden auf das Profil klickt (oder aktualisiert), wird in einer Eingabeaufforderung "Bitte überprüfen Sie Ihr Profil, bitte warten" angezeigt anstatt zu sagen: "Hey, Sie überladen die Datenbank zurück nach 30sek ".Laravel: Wie limitiere ich einen Benutzer auf eine Route/Seite?

Er sagte, dass der Zweck dies ist, die Datenbank vor mehreren Anfrage zu schützen.

Das Profil ist nur ein Beispiel.

Antwort

0

Einfache Lösung verwendet Drossel Middleware
In __contruct Methode in Ihrem Controller. Fügen Sie diese Codezeile

// This mean: 3 hits per 1 minute 
$this->middleware('throttle:3,1'); 
+0

Dank, arbeitete wie Charme. Irgendeine Idee, wie man die Antwort "Zu viele Versuche" ändern/bearbeiten möchte, möchte ich auf JavaScript aufmerksam machen ('Zu viele Versuche, Wiederholung bei 1 Minute'). –

+0

Werfen Sie einen Blick auf Illuminate \ Routing \ Middleware \ ThrottleRequests die Idee, dann kannst du deine eigene Middleware mit eigener Nachricht schreiben, ich habe es noch nie probiert :) – KmasterYC

Verwandte Themen