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 鈥渓istening鈥 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: 鈥淭e 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鈥檚 ?? con todo respeto pero que desorden de c贸digo, no explica bien, no lleva las convenciones de laravel, y aparte 鈥渢e 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 鈥淓ventServiceProvider鈥 en el m茅todo 鈥渂oot鈥 hacen el respectivo registro del 鈥淧roductObserver鈥.

/** 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 鈥渦pdated鈥 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 鈥渦pdated()鈥, nunca se ejecutara en estas situaciones para 鈥渇orzar鈥 que se ejecute se puede usar el metodo 鈥渢ouch鈥 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 鈥渃reateOrUpdate鈥 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.