创建一个观察者

观察者用于监听 Laravel 中某个模型的实时回调。
这些侦听器可以侦听以下任何操作:

  • 创建
  • 创建
  • 更新
  • 更新
  • 保存
  • 保存
  • 删除
  • 删除
  • 恢复
  • 恢复

这是一个观察者的例子。

UserObserver

<?php

namespace App\Observers;

/**
 * Observes the Users model
 */
class UserObserver 
{
    /**
     * Function will be triggerd when a user is updated
     *
     * @param Users $model
     */
     public function updated($model)
     {
         // execute your own code
     }
}

如用户观察者所示,我们监听更新的操作,但是在此类实际监听用户模型之前,我们首先需要在 EventServiceProvider 中注册它。

EventServiceProvider

<?php 

namespace App\Providers;

use Illuminate\Contracts\Events\Dispatcher as DispatcherContract;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;

use App\Models\Users;
use App\Observers\UserObserver;

/**
 * Event service provider class
 */
class EventServiceProvider extends ServiceProvider
{
    /**
     * Boot function
     *
     * @param DispatcherContract $events
     */
    public function boot(DispatcherContract $events)
    {
        parent::boot($events);

        // In this case we have a User model that we want to observe
        // We tell Laravel that the observer for the user model is the UserObserver
        Users::observe(new UserObserver());
    }
}

现在我们已经注册了我们的观察者,每次保存用户模型后都会调用更新的函数。