簡體   English   中英

Laravel 更新時未調用觀察者屬性

[英]Laravel observer property not being called on update

我正在調查觀察者,我發現不是在App\Providers\EventServiceProvider laravel 的boot()方法期間調用觀察者,而是可以使用屬性protected $observers調用它。

在 boot 方法中調用它時它工作得很好,但是當我把它放在屬性中時它不起作用。

我究竟做錯了什么? 我在文檔中找不到任何其他解釋。

我的事件服務提供商:

class EventServiceProvider extends ServiceProvider
{
    /**
     * Summary of Observers
     * @var mixed
     */
    protected $observers = [
        User::class => [UserObserver::class],
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        //User::observe(UserObserver::class);
        //Above line is commented because property $observers is used, but uncommented when property observers is commented.
    }

我的觀察者:

class UserObserver
{

    /**
     * Handle the User "updated" event.
     *
     * @param  \App\Models\User  $user
     * @return void
     */
    public function updated(User $user)
    {
        $dirty = $user->getChanges();
        dump($user);
        dd($dirty);
    }
}

你有沒有試過調用 $this->register(); 在引導 function 內?

class EventServiceProvider extends ServiceProvider
{
    /**
     * Summary of Observers
     * @var mixed
     */
    protected $observers = [
        User::class => [UserObserver::class],
    ];

    /**
     * Register any events for your application.
     *
     * @return void
     */
    public function boot()
    {
        $this->register();
    }

暫無
暫無

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

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