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:
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
- Generar controladores asociados a un modelo en Laravel 5.4
- Tipos de Middleware en Laravel
- Curso de programación orientada a objetos
- Aprende a usar el componente Styde\Html
Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.
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