jairogarcíarincón

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:






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:



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):




Uso de Vistas en listado de usuarios






Uso de Vistas en listado de noticias






Ejercicios propuestos


  1. 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).

  2. 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)



Publicado el 21 de Mayo de 2022

bloggestor de contenidoslaravelphpcssjquery