Saltar al contenido

Los Observers en los modelos de Laravel nos permiten estar atentos a todo lo que en nuestros modelos sucede. Para que te hagas una idea, los siguientes son los eventos de Eloquent que podemos estar escuchando:

Retrieved, cuando se obtiene un modelo.

Creating, mientras se crea un modelo.

Created, una vez se ha creado un modelo.

Updating, mientras se actualiza un modelo.

Updated, una vez se ha actualizado un modelo.

Saving, mientras se guarda un modelo, crear y actualizar).

Saved, una vez se ha guardado un modelo, (crear y actualizar).

Deleting, mientras se elimina un modelo.

Deleted, una vez se ha eliminado un modelo.

Restoring, mientras se restaura un modelo (Softdeletes).

Restored, una vez se ha restaurado un modelo (Softdeletes).

Replicating, mientras se replica un modelo (->replicate()).

¿Cómo crear un Observer en Laravel?

Podemos crear un observer en Laravel gracias al comando make:observer de la siguiente forma.

php artisan make:observer UserObserver --model=User

El comando anterior habrá generado un archivo como el siguiente.

<?php

namespace App\Observers;

use App\Models\User;

class UserObserver
{
    /**
     * Handle the User "created" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function created(User $user)
    {
        //
    }

    /**
     * Handle the User "updated" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function updated(User $user)
    {
        //
    }

    /**
     * Handle the User "deleted" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function deleted(User $user)
    {
        //
    }

    /**
     * Handle the User "forceDeleted" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function forceDeleted(User $user)
    {
        //
    }
}

¿Cómo utilizar un Observer en Laravel? Para utilizar un Observer en Laravel lo más sencillo es registrarlo en el EventServiceProvider de la siguiente forma.

<?php

use App\Models\User;
use App\Observers\UserObserver;

/**
 * Register any events for your application.
 *
 * @return void
 */
public function boot()
{
    User::observe(UserObserver::class);
}

A partir de ahora, cuando algo suceda en nuestro modelo User, podremos automatizar ciertos procesos basándonos en las necesidades de nuestro negocio, espero que te haya servido esta entrada.

school Curso completo

Curso Laravel 12
Completo 2026

El único curso 100% actualizado que incluye Laravel 12, Livewire 3, Vue 3, React 19 e Inertia 2. Aprende con proyectos reales y las últimas funcionalidades.

access_time 8 horas de contenido
layers 4 tecnologías en 1
update 100% actualizado
code Proyectos prácticos
Ver Curso Laravel 12 arrow_forward

star Incluido en cualquier suscripción

Rutas de aprendizaje