Qu’est-ce que Precognition
Precognition est un mécanisme qui exécute la validation côté serveur avant que le formulaire soit envoyé. Vous n’avez pas à dupliquer les règles de validation côté frontend : les règles Laravel sont utilisées telles quelles. Contrairement à une requête normale, dans une requête Precognition les middlewares de route et la validation des form requests sont exécutés, mais pas le corps de la méthode du contrôleur. C’est donc idéal pour la validation en temps réel pendant la saisie.Installation
Sous Laravel 13, il n’est pas nécessaire d’installer en plus le package backendlaravel/precognition.
Vous n’avez besoin que du package d’aide côté frontend.
- Vue :
laravel-precognition-vue - React :
laravel-precognition-react - Alpine.js :
laravel-precognition-alpine
Inertia intègre le support de Precognition depuis la version 2.3. Il fonctionne également tel quel sous Inertia 3.
Si vous utilisez les formulaires Inertia, il n’est généralement pas nécessaire d’ajouter
laravel-precognition-vue / laravel-precognition-react.Configuration backend
Ajoutez le middlewareHandlePrecognitiveRequests à votre route.
Il est recommandé de regrouper les règles de validation dans une form request.
Cela facilite la réutilisation des règles et la séparation des responsabilités.
Intégration frontend
Alpine.js (Blade)
Vue (Inertia.js)
React (Inertia.js)
JavaScript vanille avec Axios
Les librairies Precognition utilisent Axios. Si vous voulez utiliser votre instance Axios existante, injectez-la avecclient.use().
Contrôle du timing de validation
Pour valider champ par champ, utilisezvalidate().
setValidationTimeout().
validateFiles().
Helpers de formulaire
useForm() regroupe la gestion de l’envoi et des erreurs.
validating: requête de validation en coursprocessing: envoi en courserrors: liste des erreursvalid('field')/invalid('field'): état de validation du champsubmit(): envoi normal