创建模型事件未在观察者中触发

Creating model event not firing in observer

我有以下文件:

ModelObserverProvider.php

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

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

class ModelObserverProvider extends ServiceProvider
{
    public function boot()
    {
        User::observe(UserObserver::class);
        Profile::observe(ProfileObserver::class);
    }

    public function register()
    {}
}

UserObserver.php

<?php

namespace App\Observers;

use App\Models\User;

class UserObserver
{
    public function creating(User $user)
    {
        dd('Creating...');
        // Hash the users password when creating.
        $user->password = bcrypt($user->password);

        // Create a new profile for the user.
        $user->profiles()->create(['name' => 'guest-' . time()]);
    }
}

我已经在我的 config/app.php 中加载了 ModelObserverProvider,但是,注意到 dd('Creating...'); 了吗?通过 User::create($request->all()) 创建新用户时,这似乎根本没有触发?有什么想法吗?

试试这个

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Models\User;
use App\Models\Profile;
use App\Observers\UserObserver;
use App\Observers\ProfileObserver;

class AppServiceProvider extends ServiceProvider
{
  /**
    * Bootstrap any application services.
    *
    * @return void
    */
    public function boot()
    {
       User::observe(UserObserver::class);
       Profile::observe(ProfileObserver::class);
    }

    /**
      * Register any application services.
      *
      * @return void
      */
      public function register()
      {}
}