Cos’è Precognition
Precognition è un meccanismo che esegue la validazione lato server prima dell’invio del form. Senza duplicare le regole di validazione nel frontend, puoi usare direttamente le regole di Laravel. A differenza delle richieste normali, in una richiesta Precognition vengono eseguiti middleware di route e validazione delle form request, ma non il corpo del metodo controller. Per questo è adatto alla validazione in tempo reale durante l’immissione.Installazione
In Laravel 13 non è necessario installarelaravel/precognition sul backend.
Servono invece i pacchetti helper per il frontend.
- Vue:
laravel-precognition-vue - React:
laravel-precognition-react - Alpine.js:
laravel-precognition-alpine
Inertia integra il supporto a Precognition a partire dalla 2.3. Puoi usarlo così com’è anche con Inertia 3.
Se usi i form Inertia, di norma non è necessaria l’installazione aggiuntiva di
laravel-precognition-vue / laravel-precognition-react.Configurazione del backend
Aggiungi il middlewareHandlePrecognitiveRequests alla route.
In pratica conviene raccogliere le regole di validazione in una form request.
Raggruppandole nella form request ottieni riusabilità delle regole e migliore separazione delle responsabilità.
Integrazione con il frontend
Alpine.js (Blade)
Vue (Inertia.js)
React (Inertia.js)
JavaScript vanilla con Axios
Le librerie Precognition usano Axios. Per usare un’istanza Axios esistente, sostituiscila conclient.use().
Controllo del timing di validazione
Per la validazione per singolo input usavalidate().
setValidationTimeout().
validateFiles().
Helper per i form
useForm() consente di gestire in modo unificato lo stato di invio e di errore.
validating: durante una richiesta di validazioneprocessing: durante l’invioerrors: elenco degli errorivalid('field')/invalid('field'): stato di validazione del camposubmit(): invio normale