Laravel y Base de Datos

Entorno de trabajo y repaso de Laravel

1

Qué aprenderás sobre Laravel Avanzado

2

Repaso de Laravel y requisitos del curso

3

Configuración de la base de datos-SQLite en Laravel

4

Instalación, configuración y uso de Homestead

5

Instalar Laravel Sanctum

6

API de autenticación: laravel UI y laravel sanctum

Manejo de tu base de datos con Laravel

7

Capa de transformación con API Resources

8

Manejo de relaciones en bases de datos con Laravel

9

Relaciones Polimórficas en Eloquent

La terminal de Laravel

10

Cómo crear comandos para la terminal de Laravel

11

Ejecutando comandos desde la API

12

Programación de tareas

Eventos y tareas de Laravel

13

Eventos y Listeners en Laravel

14

Eventos de Eloquent

15

Introducción al uso de Queues y Jobs

16

Cómo disparar eventos en Queues

17

Laravel Horizon

Manejo de errores

18

Cómo capturar y leer errores con la clase Handler

19

Excepciones personalizadas

20

Excepciones HTTP personalizadas y debugging con Laravel Telescope

21

Configuración de logs y channels en Laravel

El corazón de Laravel

22

Ciclo de vida de una aplicación en Laravel

23

¿Qué son los service containers?

24

¿Cómo funciona un service container?

25

Registro y carga de clases con service providers

Creación de paquetes

26

¿Cómo crear mis propios paquetes de Laravel?

27

Propiedades para manejo de dependencias

28

Comprende el archivo composer.json

29

Extendiendo composer.json, autocarga de clases y PSR-4

30

Crear mis propios Services Providers

31

Publicación de archivos

32

Uso de repositorios locales

33

Publicación de paquetes en packagist

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Eventos de Eloquent

14/33
Recursos

Aportes 12

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

OBSERVERS
esto que vimos son los eventos de eloquent , podemos utilizarlos para crear datos al crear una entidad o en cualquier parte del ciclo de vida

ya que es un poco sucio ver todo esto en el model
existen los observers
Observers
Si estas “listening” a muchos events podes tener un observer de este Model para tener todo mas limpio

1 php artisan make:observer ProductObserver --model=Product
//App/Observers/ProductObserver.php

2 aca nos ahorramos todo lo de booted y creating que hicimos en el Model

Laravel nos da el observer para elejiir en que parte del ciclo de vida queremos interactuar

sacamos lo del model y lo ponemos en created

class ProductObserver
{

public function created(Product $product)
{
            $faker = \Faker\Factory::create();
    	$product->image_url = $faker->imageUrl();

       	 $product->createdBy()->associate(auth()->user());
    
}


public function updated(Product $product)
{
    //
}


public function deleted(Product $product)
{
    //
}


public function restored(Product $product)
{
    //
}


public function forceDeleted(Product $product)
{
    //
}

}

A mi me parece que para dejar un reto primero tienes que explicarlo, no tiene sentido decir: “Te reto a…” si no lo has explicado, claro, podemos investigar y mirar los aportes, pero el objetivo de un curso es explicar un tema y luego retar a que profundicemos en ese tema.

Dejo el enlace al commit de esta clase con Laravel 8:

https://github.com/RetaxMaster/platzi-api/commit/6ecb85ceea84ff33ea1fcc2cdbaeb8c04775ec10

Aunque debo decir que la documentación de Laravel es pedagógicamente muy agradable, ¿Por qué no se explico a fondo estos conceptos de los Observers?

Insisto, Una pena este curso.

Un punto intermedio entre manejar callbacks en el modelo usando el metodo boot() y un observable es usar la propiedad protegida $dispatchesEvents en el modelo:

    protected $dispatchesEvents = [
        'created' => YourEvent::class
    ];

Esto puede ser util en casos donde mi modelo tiene pocos eventos y crear un observable puede ser demasiado para solo uno dos eventos, sin embargo si excede si es mejor usar observables para no tener modelos demasiado largos, aunque todo es me imagino a la convención que sientas mas correcta al momento de escribir tu código.

Por si acaso les dejo el link para comprender y profundizar en el tema desde la propia documentación de Laravel:https://laravel.com/docs/8.x/eloquent#events

Opinión: Para poder realizar retos deberíamos primero entender un poco la implementación y su funcionamiento en la práctica. Este tipo de cursos y clases deberían refinarse si o si, ya que en lo personal confunden y desaniman a continuar con el mismo.

usar faker para la creación de la imagen en el modelo productos ? entonces para que tienes factory’s ?? con todo respeto pero que desorden de código, no explica bien, no lleva las convenciones de laravel, y aparte “te reta” hacer algo que en realidad él no ha explicado ? HE VISTO MEJORES CURSO Y GRATIS.

con el evento booted , lo cual, se inicia cuando es llamado el modelo podemos hacer diferentes cosas, como: Hacer CRUD

jumm debo hacer mucha investigacion antes de continuar

Para los que hagan el reto, recuerden que no basta con crear el Observer y el Evento, también tienen que indicarle a Laravel que quieren hacer uso del Observer, en este caso en el “EventServiceProvider” en el método “boot” hacen el respectivo registro del “ProductObserver”.

/** EventServiceProvider.php */
public function boot()
{
      Product::observe(ProductObserver::class);
}

Ojo un detalle para quien migre la logica a observables , estos estan pendientes de eventos ligados a modelos, por ejemplo modelo Post puede tener algun evento al momento de ser creado:

public function created()
{
    // avisar que hay nuevos posts con una notificacion
}

Sin embargo el metodo “updated” tiene un detalle a veces modificamos un valor usando eloquent pero los timestamps no cambian, en este caso el código evento dentro del metodo “updated()”, nunca se ejecutara en estas situaciones para “forzar” que se ejecute se puede usar el metodo “touch” en el modelo asi obligamos al modelo a actualizarse.

Esto no es tan comun pero puede darse el caso de uso cuando usamos un metodo “createOrUpdate” por ejemplo en un modelo de eloquent.

Los eventos de eloquent nos permite capturar el ciclo de video de un modelo

🤯Dioos cuantas quejas en los comentarios!!
Sigan el repositorio tal como dice el prof
LINK
A mi me parece una práctica genial dejar tareas y hacer investigación cuando es necesario, por ello el curso es AVANZADO y considero que este tipo de tareas ayudan a fortalecer el tema.