Laravel 5.4 incluye 2 nuevos middleware que te ayudarán a procesar los datos provenientes de formularios, estos middleware son: TrimString que elimina espacios sobrantes al principio y al final de las cadenas y ConvertEmptyStringsToNull, el cual, como su nombre en inglés lo indica: convierte las cadenas vacías a null, con el fin de evitar errores causados por restricciones (constraints) en la base de datos, cuando por ejemplo definimos llaves foráneas que aceptan valores nulos.

En el siguiente video tutorial usaré un formulario de ejemplo para enseñarte cómo actúan estos middleware, porqué son importantes y cómo usarlos:

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

Para usar los middleware deben estar registados en el array $middleware del archivo /app/Http/Kernel.php.

Extendiendo la clase del middleware TrimString en app/Http/Middleware/TrimStrings.php  podemos agregar los campos que queremos que sean excluidos por él.  Asegurándote que en el archivo Kernel.php esté registrada esta clase extendida. Esto ya viene por defecto en la clase Kernel.php de Laravel 5.4.

Recuerda nunca modificar una clase dentro de la carpeta vendor, en vez de ello extiéndela en tu directorio app y haz los cambios que necesites.  Para aprender más sobre cómo desarrollar con PHP orientado a objetos te invitamos a ver nuestro Curso de programación orientada a objetos con PHP

Las migraciones usadas en el video se encuentran en Claves foráneas e integridad referencial de datos en Laravel y para el controlador y los modelos puedes crearlos como se hizo en la lección Generar controladores asociados a un modelo en Laravel 5.4.

Laravel también incluye el middleware ValidatePostSize para validar la cantidad máxima de datos que se pueden enviar a través de post. Asegúrate de incluirlo en la clase Kernel de tu proyecto si estás actualizando a Laravel 5.4.

Material relacionado

Únete a la discusión

Regístrate en Styde y obtén una invitación a nuestro Slack.

Lección anterior Generar controladores asociados a un modelo en Laravel 5.4 Lección siguiente Nueva interfaz fluida en las rutas de Laravel 5.4