Was ist Precognition
Precognition ist ein Mechanismus, der die Server-seitige Validierung bereits vor dem Absenden eines Formulars ausführt. So können Sie im Frontend dieselben Laravel-Regeln nutzen, ohne die Validierungslogik doppelt zu pflegen. Anders als bei einem normalen Request werden bei einem Precognition-Request Route-Middleware und Form-Request-Validierung ausgeführt, der eigentliche Body der Controller-Methode aber nicht. Deshalb eignet sich Precognition gut für die Echtzeit-Validierung während der Eingabe.Installation
Seit Laravel 13 müssen Sie backendseitiglaravel/precognition nicht mehr separat installieren.
Nötig sind lediglich die frontendseitigen Helper-Pakete:
- Vue:
laravel-precognition-vue - React:
laravel-precognition-react - Alpine.js:
laravel-precognition-alpine
Inertia unterstützt Precognition ab 2.3 direkt. Auch in Inertia 3 funktioniert es weiterhin.
Bei Inertia-Formularen ist die zusätzliche Installation von
laravel-precognition-vue bzw. laravel-precognition-react normalerweise nicht nötig.Backend-Konfiguration
Fügen Sie der Route die MiddlewareHandlePrecognitiveRequests hinzu.
In der Praxis konzentrieren Sie die Validierungsregeln in einem Form-Request –
das erleichtert Wiederverwendung und trennt Zuständigkeiten klar.
Frontend-Integration
Alpine.js (Blade)
Vue (Inertia.js)
React (Inertia.js)
Vanilla JavaScript mit Axios
Die Precognition-Bibliothek verwendet Axios. Um eine bestehende Axios-Instanz zu nutzen, ersetzen Sie sie mitclient.use().
Steuerung der Validierungs-Timings
Die Validierung eines einzelnen Feldes lösen Sie mitvalidate() aus.
setValidationTimeout() an.
validateFiles().
Formular-Helfer
useForm() bündelt Übermittlungs- und Fehlerstatus.
validating: Eine Validierungsanfrage läuftprocessing: Ein Submit ist in Bearbeitungerrors: Liste der Fehlervalid('field')/invalid('field'): Validierungsstatus des Feldessubmit(): Regulärer Submit