Introducción
Si bien Laravel incluye una gran variedad de
helpers por defecto que nos hacen la vida más sencilla y que puedes consultar en
https://laravel.com/docs/8.x/helpers, lo cierto es que en muchas ocasiones vamos a necesitar crear nuestros propios
helpers personalizados de cada aplicación.
En concreto, en la mayoría de las aplicaciones nos va a resultar útil tener dos tipos de
helpers, que son los que vamos a desarrollar aquí:
Funciones: para diferentes funciones o métodos de ayuda que se repiten en diferentes controllers o que ocupan mucho espacio en el mismo (por ejemplo, la función
getSlug() de
NoticiaController).
Vistas: para los diferentes cálculos de vistas, como por ejemplo el color o tipo de icono que debe ir en los listados de usuarios o noticias.
Creación de los helpers
Vamos a crear los dos
helpers de manera manual, simplemente creando una nueva carpeta llamada
Helpers dentro de
app y creando dentro de ella 2 nuevas clases PHP llamadas
Funciones y
Vistas con el siguiente contenido:
Ver ejemplo de código
Ver ejemplo de código
Registro de los helpers en la aplicación
Para poder utilizar estos
helpers en nuestra aplicación, debemos registrarlos previamente.
Para ello, modifica el archivo
config/app.php para que incluya los alias correspondientes a dichos
helpers en el array de
aliases:
Ver ejemplo de código
Hecho esto, ya podemos utilizar los
helpers en cualquier controlador, o incluso directamente en las vistas.
Uso de Funciones en NoticiaController
Modifica
NoticiaController para usar la función
getSlug() de
Funciones en vez de la que está en el propio controlador (que directamente puedes borrar):
Ver ejemplo de código
Uso de Vistas en listado de usuarios
Ver ejemplo de código
Uso de Vistas en listado de noticias
Ver ejemplo de código
Ejercicios propuestos
- Modifica el proyecto para que, mediante un método en Funciones, se verifique que el slug es único al crear o guardar la noticia (añadiendo algo aleatorio al final en caso contrario).
- Modifica las vistas de listado de usuario y noticias para que, mediante un método en Vistas, los permisos de usuarios y noticias aparezcan con el icono de check_circle verde si están a 1 o con el icono de block rojo si están a 0 (Pulsa AQUÍ para ver la información sobre los iconos de Materialize)