创建一个观察者
观察者用于监听 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());
}
}
现在我们已经注册了我们的观察者,每次保存用户模型后都会调用更新的函数。