Was ist Validierung
Validierung bedeutet, zu prüfen, ob vom Nutzer übermittelte Daten das erwartete Format und die Bedingungen erfüllen. Laravel bietet dafür die einfache, aber leistungsfähigevalidate-Methode am Request-Objekt sowie eigene Form-Request-Klassen.
Validierung im Controller
Nutzung von $request->validate()
Der einfachste Weg ist der Aufruf von $request->validate() im Controller.
Schlägt die Validierung fehl, leitet Laravel automatisch zurück und speichert die Fehler in der Session.
Routen:
validate erwartet ein Array aus Feldname → Regel.
Regeln trennen Sie per Pipe | oder in einem Array.
Wichtige Validierungsregeln
Alle Regeln finden Sie in der offiziellen Dokumentation.
Array-Schlüssel validieren
Die Regelarray_keys prüft, ob der Zielwert ein PHP-Array ist und alle Schlüssel in der angegebenen Liste enthalten sind. Mindestens ein Schlüssel muss angegeben werden.
Rule::arrayKeys.
Nutzung der validierten Daten
Der Rückgabewert vonvalidate enthält ausschließlich die validierten Werte – vertrauenswürdig zur Weiterverarbeitung.
Fehleranzeige in Blade
Nach einer fehlgeschlagenen Validierung stellt Laravel automatisch die Variable$errors in allen Views zur Verfügung.
Dafür sorgt die Middleware ShareErrorsFromSession aus der web-Gruppe.
Alle Fehler auflisten
Fehler pro Feld
Mit@error zeigen Sie inline Fehler eines bestimmten Feldes.
Form Requests
Was sind Form Requests
Wenn die Validierungslogik komplexer wird, verlagern Sie sie in eine „Form-Request”-Klasse. Ein Form Request bündelt Validierungs- und Autorisierungslogik in einer eigenen Request-Klasse.Form Request erzeugen
Mitmake:request:
app/Http/Requests/StorePostRequest.php:
rules()
Gibt die Regeln als Array zurück – gleiches Format wie beim validate-Aufruf.
authorize()
Prüft, ob der Nutzer diese Aktion ausführen darf.
true = erlaubt, false = automatisches 403 Forbidden.
Wollen Sie nur angemeldete Nutzer zulassen, prüfen Sie mit auth()->check(). Für Tutorials reicht true.
Injection im Controller
Deklarieren Sie den Form Request einfach als Parameter. Die Validierung läuft vor der Methodenausführung.$request->validated() liefert nur die validierten Daten.
Passwortkomplexität und -länge festlegen
Mit dem Rule-ObjektPassword legen Sie Passwortkomplexität sowie Mindest- und Höchstlänge gemeinsam fest.
min() gibt die Mindestlänge und max() die maximale Länge an. Durch Setzen von max() können Sie komplexe Passwörter erlauben und zugleich eine Obergrenze deklarieren, die von Ihrer Speicherlösung und der Anbindung an Drittanbieter-Dienste erwartet wird.
Praxisbeispiel: Post-Formular anlegen und speichern
Kompletter Ablauf: Formular anzeigen, absenden, validieren, speichern.1
Routen definieren
2
Form Request erzeugen
3
Controller implementieren
4
Blade-Template anlegen
Vergessen Sie in Blade-Formularen nicht das
@csrf-Directive – ohne CSRF-Token liefert Laravel Status 419.Nächste Schritte
HTTP-Requests
Frischen Sie das Abrufen von Daten aus dem Request-Objekt auf.