Adquiere este curso para tener acceso a todas las lecciones
Comprar curso134. Observers
En este capítulo, descubre cómo utilizar Observers en Laravel 10. Aprende cómo utilizar Observers para realizar acciones en la base de datos cuando se realizan cambios en tus modelos.
2 comentarios
Inicia sesión para comentar
Comentarios:
-
Victor Arana Flores hace 1 año Destacado
Los Observers en Laravel 10 son clases que escuchan eventos específicos que se producen en los modelos de tu aplicación. Los Observers se pueden utilizar para realizar acciones en la base de datos cuando se realizan cambios en tus modelos, como la creación, actualización o eliminación de un registro.
Para crear un Observer en Laravel 10, puedes utilizar el comando php artisan make:observer seguido del nombre de tu Observer y el nombre del modelo al que se asociará. Por ejemplo, si quisieras crear un Observer para el modelo Post, podrías utilizar el siguiente comando:
php artisan make:observer PostObserver --model=Post
Una vez que se ha creado el Observer, se puede agregar la lógica específica en los métodos que se corresponden con los eventos que deseas escuchar. Por ejemplo, el método created se ejecutará cuando se cree un nuevo registro en el modelo.
Para asociar el Observer con el modelo correspondiente, debes registrar el Observer en el método boot de tu archivo app/Providers/AppServiceProvider.php. Por ejemplo, si quisieras registrar el Observer PostObserver con el modelo Post, podrías utilizar el siguiente código:
use App\Observers\PostObserver; use App\Models\Post; class AppServiceProvider extends ServiceProvider { public function boot() { Post::observe(PostObserver::class); } }
Con esta configuración, el Observer PostObserver escuchará los eventos que se produzcan en el modelo Post y ejecutará la lógica correspondiente en los métodos correspondientes.
En resumen, los Observers son una herramienta útil para realizar acciones en la base de datos cuando se realizan cambios en tus modelos, y Laravel 10 hace que sea fácil crear y registrar Observers en tu aplicación.
-
Edmer hace 1 semana
Estimado profesor.
En laravel 10 observer se debe registrar en app/Providers/AppServiceProvider.php o en app/Providers/EventServiceProvider.php
-
Victor Arana Flores hace 3 días
Hola Edmer, en Laravel 10 puedes registarlo en cualquier provider, pero de preferencia deberías registrarlo en EventServideProvider, para mantener organizado tu codigo.
En Laravel 11 se registran en el mismo modelo, en los proximos días estaré actualizando los videos.
-
-
Jesús M.m hace 1 año
Hola Victor, no entiendo porqué pero me sigue arrojando el error:
"InvalidArgumentException
PHP 8.1.0 laravel 10.2.0
Unable to find observer: app\Observers\PostObserver"
EventServiceProvider.php
namespace App\Providers;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Event;
class EventServiceProvider extends ServiceProvider
{
/**
* The event to listener mappings for the application.
*
* @var array<class-string, array<int, class-string>>
*/
protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
];
/**
* Register any events for your application.
*/
public function boot()
{
\App\Models\Post::observe(\app\Observers\PostObserver::class);
}
PostObserver.php
namespace App\Observers;
use App\Models\Post;
use Illuminate\Support\Str;
class PostObserver
{
public function creating(Post $post)
{
$post->slug = Str::slug($post->title);
$post->user_id = auth()->id();
}
-
Victor Arana Flores hace 1 año
El namespace le has dado App\Observers pero cuando haces referencia a el lo haces como app\Observers
-
Jesús M.m hace 1 año
Oh, que distingue entre mayúsculas también… Muchas gracias!
-