Como Crear un Sistema de Notificaciones (Frontend) con Laravel 8 y MySQL – Parte 3

Laravel Tutoriales | | Comunidad: Crear un Post, Eventos Devs, Foro

En la Parte anterior llamada Como Crear un Sistema de Notificaciones (Frontend) con Laravel 8 y MySQL – Parte 2 creamos la migración para la tabla que almacenará las notificaciones y definimos los campos para esta tabla, asimismo ejecutamos la migración para que se cree la tabla con los campos en la base de datos, en este tercera parte vamos a continuar con la creación de nuestro sistema de notificaciones, vamos con ello.

Partes

Antes de continuar, te invito a leer los siguientes artículos:

Asimismo te invito a escuchar el Podcast: “¿ Que Hago Si No Tengo Los Recursos Para Dedicarme A La Programación ?”:

Spotify: Sound Cloud: Apple Podcasts

Bien ahora continuemos con el Post: Como Crear un Sistema de Notificaciones (Frontend) con Laravel 8 y MySQL – Parte 3.

En la Parte 2 de este tutorial creamos la tabla llamada notifications mediante un comando nativo de Laravel, yo podría optar por crear una tabla personalizada, pero voy a usar esa tabla ya que me creo los campos rápidamente y pienso que no hay nada mejor que usar algo nativo de Laravel porque suele funcionar en la mayoría de casos de manera optima.

Guardando Notificaciones en la Base de Datos

En la Parte 1 de este tutorial creamos 2 tablas una llamada jugos y otra llamada postres, la idea es que cuando se agrega un nuevo producto en cualquiera de esas 2 tablas, pues el sistema nos debe mostrar una notificación con el mensaje “Se agrego un nuevo Producto”, tu le puedes poner el mensaje que desees, yo para este tutorial haré que muestre ese mensaje.

Antes que todo voy a verificar si podemos guardar datos en la tabla notificacions que es en donde se almacenarán las notificaciones. Para poder procesar las notificaciones y guardarlas, necesitamos crear una Notificación, le pondré de NotificarCambios y lo creo ejecutando el siguiente comando.

Luego de ejecutar el comando anterior, se me ha creado un archivo llamado NotificarCambios.php en app > Notifications > NotificarCambios.php

Abro el archivo NotificarCambios.php y dentro de el empiezo creando una variable privada con el nombre $notificacion, tu le puedes poner el nombre que desees.

Luego en la función __construct() le paso como argumento la variable $notificacion, en el método vía() le digo que usaré una base de datos entonces le dejo como return [‘database’].

Y Por último dentro del método toArray() defino los valores que quiero guardar en la columna data de la tabla notifications en la base de datos, los valores que quiero guardar son titulo y contenido, estos se almacenaran como un array que luego podemos manipularlo según lo deseado. Tu puedes almacenar los valores que desees no hay problema.

El archivo NotificarCambios.php se debería ver de la siguiente manera con los cambios mencionados.

Ahora voy a crear una ruta y un controlador, primero crearé la ruta que apuntará al controlador, para esto abro el archivo web.php que se encuentra en routes > web.php

Dentro del archivo web.php agrego la ruta /notificar, tu le puedes poner la ruta que desees, no hay problema. Cuando escribimos esta ruta en el navegador, este llamará al controlador llamado TestController.php que crearemos mas abajo. Dentro de este controlador crearemos un método llamado enviarNotificacion() que procesará la notificación.

Bueno ahora crearé el controlador TestController.php, tu le puedes poner el nombre que desees, no hay problema. Para crear este controlador ejecuto el siguiente comando.

Luego de ejecutar el comando anterior se me ha creado el archivo TestController.php en app > Http > Controllers > TestController.php

Abro el archivo TestController.php y antes de la clase principal importo el modelo User, el trait Notification y el archivo de notificación que creamos al inicio de este Post, es decir NotificarCambios.

Luego creo el método enviarNotificacion() y dentro de creo una  variable con el nombre $esquema, dentro de ella llamo a todos los usuarios, luego creo una variable con el nombre $notificacion, dentro de ella armo el cuerpo de la notificación con los valores que serán insertados en la columna data de la tabla notifications.

Luego paso Notification::send en donde paso la variable $esquema, asimismo creamos una nueva notificación mediante new NotificarCambios y le pasamos la variable $notificacion.

Ya que este controlador es para probar y verificar si se pueden guardar notificaciones en la tabla notifications, mostraré un mensaje que diga Tarea Realizada ! cada ves que una notificación es almacenada.

Con los cambios mencionados, el archivo TestController.php se debe ver de la siguiente manera.

Entonces si arranco el servidor con el siguiente comando.

Y abro la ruta http://localhost:8000/notificar en mi navegador, debería de ver un mensaje que dice Tarea Realizada ! 

Y si voy a phpMyAdmin, puedo ver que se ha insertado una notificación en la tabla notifications, puedes ver en la columna data se ha guardado los  valores titulo y contenido en formato JSON.

Los datos de las demás columnas fueron creados automáticamente por Laravel, nosotros solo debemos usar todos los datos que se almacenan en la columna data, al menos para este tutorial, ya que los datos de las demás columnas si pueden ser usados, pero para otras lógicas de aplicaciones.

Bueno hasta aquí llegamos con este Post, en donde creamos nuestro archivo de notificación NotificarCambios.php, luego creamos una ruta y un controlador para gestionar nuestra prueba de notificaciones.

Ten Paciencia, lo que quiero es que conozcas bien como se crea este proyecto y no llenarte el capitulo de mucho contenido porque te puedes marear y no tendrás un óptimo aprendizaje. 

Nota (s)

  • En la siguiente parte vamos a crear las vistas de administración para los jugos y postres.
  • No olvides que debemos usar la Tecnología para hacer cosas Buenas por el Mundo. 

 

Síguenos en nuestras Redes Sociales para que no te pierdas nuestros próximos contenidos.

Newsletter

Suscríbete a Nuestro Boletín de Novedades:

(Luego de la suscripción no te va salir ningun mensaje. Solo revisa tu bandeja de Correo para confirmar tu suscripción)
* indicates required
Subscribirse
Notificar a
guest
0 Comments
Inline Feedbacks
View all comments