Laravel Nova:观察模型并仅根据 Nova 请求采取行动

Laravel Nova: Observing models and acting on Nova requests only

我的 api 中有一个批量操作端点,允许在单个请求中创建或添加多个模型。创建这些模型后,我会派遣一个作业来创建一个“审计”记录,该记录引用所有已创建或更新的模型。

当有人在 Nova 仪表板中创建或更新记录时,我需要相同的功能来触发,但由于上述原因,我不能简单地创建模型观察者,否则我最终会得到重复的“审计”记录发出批量 api 请求。

我能想到的最好的办法是创建一个模型观察器,它能够确定被观察的模型是否正在更新或专门通过 nova 创建。如果保存或更新来自 Nova request/resource,我如何在模型上设置一个观察者来创建和更新事件,该事件只会 运行?

根据Laravel Nova Documentation

If you would like to attach an observer only during Nova related HTTP requests, you may register observers within Nova::serving event listener in your application's NovaServiceProvider. This listener will only be executed during Nova requests:

/**
 * Bootstrap any application services.
 *
 * @return void
 */
 public function boot()
 {
     parent::boot();

     Nova::serving(function () {
         User::observe(UserObserver::class);
     });
 }