Skip to main content

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 backendseitig laravel/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 Middleware HandlePrecognitiveRequests hinzu. In der Praxis konzentrieren Sie die Validierungsregeln in einem Form-Request – das erleichtert Wiederverwendung und trennt Zuständigkeiten klar.
Falls eine eigene Middleware Seiteneffekte hat, überspringen Sie sie bei Precognition-Requests.

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 mit client.use().

Steuerung der Validierungs-Timings

Die Validierung eines einzelnen Feldes lösen Sie mit validate() aus.
Die Debounce-Zeit passen Sie über setValidationTimeout() an.
Sollen bei jeder Prüfung auch Dateien mitvalidiert werden, verwenden Sie validateFiles().
Für Array-Eingaben nutzen Sie eine Wildcard.

Formular-Helfer

useForm() bündelt Übermittlungs- und Fehlerstatus.
  • validating: Eine Validierungsanfrage läuft
  • processing: Ein Submit ist in Bearbeitung
  • errors: Liste der Fehler
  • valid('field') / invalid('field'): Validierungsstatus des Feldes
  • submit(): Regulärer Submit

Vergleich: Normale und Precognition-Requests

Das folgende Diagramm zeigt den Unterschied im Ablauf.
Zuletzt geändert am 13. Juli 2026