簡體   English   中英

創建模型事件未在觀察者中觸發

[英]Creating model event not firing in observer

我有以下文件:

模型觀察者提供者.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()
    {}
}

用戶觀察者.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()
      {}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM