Definir y escuchar eventos personalizados en Laravel Livewire

Lo siguiente que vamos a hacer sería definir un evento es decir despachar un evento similar a lo que ya hicimos con el de car que tenemos aquí despachar un evento con el parámetro Cuando hacemos alguna de las operaciones tipo CRUD de eliminar actualizar o crear así que luego esto lo vamos a escuchar desde acá y vamos a mostrar el toas ese viene siendo el sentido así que si tienes el mismo problema que yo al menos de momento comenta esto por favor ya esto lo resolvemos en las siguientes clases y hacemos los detalles finales para que no te dé un error ahí que es una sección que me aparece a mí entonces bueno vamos allá.

Definir eventos

Voy a comenzar desde acá a definir los eventos que obviamente pueden tener cualquier nombre entonces voy a colocarlo aquí por ejemplo luego de la sesión voy a colocar un dispatch y colocas el nombre del evento que en este caso sería item delete puedes colocarle car item delete lo que tú quieras otra vez como la aplicación es de un alcance limitado y no va a hacer tantas cosas coloco aquí de manera genérica item puede ser product también si te sientes a gusto y algo similar acá este es el update así que coloco aquí update y pasamos los parámetros que en este caso sería el post que a ver dónde lo tengo aquí lo tengo en la variable puedo colocar coma post aquí igual pero este sería para crear:

app/Http/Livewire/Shop/CartItem.php

public function add($post, $count = 1)
{
   //***

   // eliminar
   if ($count <= 0) {
       if (Arr::exists($cart, $post['id'])) {
           //***
           $this->dispatch("itemDelete");
       }
       return;
   }

   // agregar
   if (Arr::exists($cart, $post['id'])) {
       $cart[$post['id']][1] = $count;
       $this->dispatch("itemChange",$post);
   } else {
       $cart[$post["id"]] = [$post, $count];
       $this->dispatch("itemAdd",$post);
   }

   //***
}

Para conocer como emplear los eventos, puedes consultar:

https://www.desarrollolibre.net/blog/laravel/plugin-de-mensajes-toast-en-laravel-livewire

- Andrés Cruz

In english

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.