Вы можете использовать Наблюдатели .
Вы можете подключить к вашей модели следующие события:
retrieved
creating
created
updating
updated
saving
saved
deleting
deleted
restoring
restored
Позвольте мне привести пример, где мы пытаемся подключиться к событиям, генерируемым моделью App/User
. Вы можете изменить это, чтобы соответствовать вашей конкретной модели позже.
Чтобы создать наблюдателя, выполните следующую команду:
php artisan make:observer UserObserver --model=User
Тогда вы можете подключиться к конкретным событиям в вашем наблюдателе.
<?php
namespace App\Observers;
use App\User;
class UserObserver
{
/**
* Handle the User "saved" event.
*
* @param \App\User $user
* @return void
*/
public function saved(User $user)
{
//
}
/**
* Handle the User "created" event.
*
* @param \App\User $user
* @return void
*/
public function created(User $user)
{
//
}
/**
* Handle the User "updated" event.
*
* @param \App\User $user
* @return void
*/
public function updated(User $user)
{
//
}
}
Поскольку в вашем конкретном случае вы хотите подключиться к этим 3 событиям, вы можете определить вышеописанные события и выполнить дополнительные операции с вашей моделью при вызове этих событий.
Не забудьте зарегистрировать этого наблюдателя в своем AppServiceProvider
.
<?php
namespace App\Providers;
use App\User;
use App\Observers\UserObserver;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
User::observe(UserObserver::class);
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}