Les observers avec Laravel
php artisan make:observer UserObserver --model=User
https://laravel.com/docs/9.x/eloquent#observers
App\Providers\EventServiceProvider service provider:
use App\Models\User;
use App\Observers\UserObserver;
/**
* Register any events for your application.
*
* @return void
*/
public function boot()
{
User::observe(UserObserver::class);
}
created, updated, deleteted,
creating, updating, deleteting,
Dans le model user, on créé
protected $dispatchesEvents = [
'creating' => UserCreatingEvent::class,
];
php artisan make:event UserCreatingEvent
Dans le fichier Event:
php artisan make:listener UserCreatingListener --event=UserCreatingEvent
Dans notre App\Providers\EventServiceProvider service provider:
on rajoute à $listen
pour lier l'écoute à l'event
userCreatingEvent::class => [
UserCreatingListener::class,
]
Dans le listeners/UserCreatingListener.php
dans le handle()
public function handle(UserCreatingEvent $event)
{
dd('creation en cours du user : ' .$event->user->name)
}
Dans le userCreatingEvent.php
public $user;
/**
* Create a new event instance.
*
* @return void
*/
public function __construct(user $user)
{
//
$this->user = $user;
}