Podemos hacer que los filtros trabajen en conjunto con las rutas, generando así un poderoso sistema de identificación de condiciones, que si lo llevamos al límite podemos conseguir resultados de alta calidad que no se verían con otros frameworks.
Incorporando el filtro
Para poder incorporar un filtro a una ruta y utilizarlo efectivamente debemos en una instalación estándar de Laravel seguir los siguientes pasos:
1- Primero debemos crear la ruta a la cual accederemos solo si hemos cumplido con las condiciones del filtro, para ello creamos una entrada en el archivo routes.php y luego de nombrar la ruta colocamos un array donde especificaremos los filtros de antes y después de la petición, veamos el ejemplo siguiente:
2- Ahora en el archivo filters.php debemos construir los filtros que vamos a utilizar, empezamos por el filtro que utilizamos antes de la petición, en dicho filtro vamos a validar el tipo de usuario que está haciendo la petición si no es de tipo administrador lo vamos a rechazar con un mensaje, veamos:
3- El siguiente filtro que haremos es el del evento de después, este ocurre una vez que hemos pasado el primer filtro y se ejecuta la acción correspondiente, en este caso vamos a generar una entrada en el log con la fecha en que el administrador hizo el ingreso.
Como vimos es muy sencillo incorporar el filtro en la ruta, en el primer paso lo que hicimos fue crear un array con los filtros y la función de cierre al final del mismo, con esto podemos hacer detonar el comportamiento que estábamos buscando, también vemos que debemos crear una variable de sesión con la cual vamos a validar el tipo de usuario, esto lo dejamos a discreción de cada quien para que puedan hacer una mejor implementación en sus aplicaciones.
A pesar de que esto es funcional, ya Laravel tiene estas funcionalidades cubiertas, simplemente estos ejemplos nos sirven para saber cómo funciona la aplicación de filtros en las rutas. Con esto finalizamos este tutorial, hemos aprendido una manera poco compleja y efectiva de aplicar filtros en las rutas, con ello podremos incorporar diferentes validaciones que necesitemos en nuestras aplicaciones con muy poco esfuerzo.