Это не правильный путь.Я думаю, что это может помочь вам: https://laravel.com/docs/5.6/eloquent#observers
Вы привязываете наблюдателей к своим моделям с помощью загрузки службы:
<?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()
{
//
}
}
Внутри обозревателя вы можете добавить все необходимые функции:
<?php
namespace App\Observers;
use App\User;
class UserObserver
{
/**
* Listen to the User created event.
*
* @param \App\User $user
* @return void
*/
public function created(User $user)
{
//
}
/**
* Listen to the User deleting event.
*
* @param \App\User $user
* @return void
*/
public function deleting(User $user)
{
//
}
}
И для уточнения.Да, это может иметь несколько наблюдателей.Хотя я никогда не видел полезной ситуации для этого:
public function boot()
{
User::observe(UserObserver::class);
User::observe(AuthenticableModelsObserver::class);
}
Таким образом, и UserObserver (), и AuthenticableModelsObserver () привязываются к модели User () при загрузке.