Laravel中的观察员
#php #laravel #observer

创建Laravel Project

php工匠制造:模型事件 - mcr //创建模型,迁移,控制器,使控制器作为资源控制器

php工匠制造:观察者eventoberver -m =事件

运行Abover命令后Laravel将提供某些观察者方法。

<?php

namespace App\Observers;

use App\Models\Event;

class EventObserver
{
    /**
     * Handle the User "created" event.
     *
     * @param  \App\Models\Event  $user
     * @return void
     */
    public function created(Event $event):void
    {
        //
    }

    /**
     * Handle the User "updated" event.
     *
     * @param  \App\Models\Event  $event
     * @return void
     */
    public function updated(Event $event):void
    {
        //
    }

    /**
     * Handle the User "deleted" event.
     *
     * @param  \App\Models\Event $event
     * @return void
     */
    public function deleted(Event $event):void
    {
        //
    }

    /**
     * Handle the User "restored" event.
     *
     * @param  \App\Models\Event $event
     * @return void
     */
    public function restored(Event $event):void
    {
        //
    }

    /**
     * Handle the User "forceDeleted" event.
     *
     * @param  \App\Models\Event $event
     * @return void
     */
    public function forceDeleted(Event $event):void
    {
        //
    }
}

完整的方法列表:

  • 检索
  • 创建
  • 创建
  • 更新
  • 更新
  • 保存
  • 保存
  • deleting
  • 删除
  • 垃圾
  • budceseleting
  • 强制骨骼
  • 还原
  • 还原
  • 复制

转到应用程序/提供商/EventerServiceProvider启动IT:

use App\Models\Event;
use App\Observers\EventObserver;

/**
 * Register any events for your application.
 *
 * @return void
 */
public function boot()
{
    Event::observe(EventObserver::class);
}

现在只要调用ExtiveOrcreate()方法,假设我们没有通过ID,则不久,在创建操作发生后不久,代码将移至观察者的创建方法,执行块并返回并开始执行其余代码。

要深入研究观察者,请参阅下面的文档:
https://laravel.com/docs/9.x/eloquent#observers
https://laravel.com/docs/9.x/eloquent#events