¿Qué es Precognition?
Precognition es un mecanismo que ejecuta la validación del lado del servidor antes de enviar el formulario. Puedes usar directamente las reglas de Laravel sin duplicar la definición de reglas en el frontend. A diferencia de una solicitud normal, en una solicitud Precognition se ejecutan los middleware de la ruta y la validación de la form request, pero no se ejecuta el cuerpo del método del controlador. Por eso es ideal para validaciones en tiempo real durante la entrada del usuario.Instalación
En Laravel 13 no necesitas instalar adicionalmentelaravel/precognition en el backend.
Lo único necesario son los paquetes helper del frontend.
- Vue:
laravel-precognition-vue - React:
laravel-precognition-react - Alpine.js:
laravel-precognition-alpine
Inertia incluye soporte para Precognition a partir de la versión 2.3. También funciona directamente en Inertia 3.
Si usas formularios de Inertia, normalmente no necesitas instalar además
laravel-precognition-vue / laravel-precognition-react.Configuración del backend
Añade el middlewareHandlePrecognitiveRequests a la ruta.
En la práctica, conviene concentrar las reglas de validación en una form request.
Agruparlas en una form request facilita la reutilización de reglas y la separación de responsabilidades.
Integración en el frontend
Alpine.js (Blade)
Vue (Inertia.js)
React (Inertia.js)
JavaScript puro con Axios
Las librerías de Precognition usan Axios. Si vas a usar una instancia de Axios existente, sustitúyela conclient.use().
Control del momento de la validación
Para validar campo a campo usavalidate().
setValidationTimeout().
validateFiles().
Helper de formulario
useForm() te permite manejar de forma unificada el estado de envío y los errores.
validating: solicitud de validación en cursoprocessing: envío en cursoerrors: lista de erroresvalid('field')/invalid('field'): estado de validación del camposubmit(): envío normal