Laravel Nova:观察模型并仅根据 Nova 请求采取行动
Laravel Nova: Observing models and acting on Nova requests only
我的 api 中有一个批量操作端点,允许在单个请求中创建或添加多个模型。创建这些模型后,我会派遣一个作业来创建一个“审计”记录,该记录引用所有已创建或更新的模型。
当有人在 Nova 仪表板中创建或更新记录时,我需要相同的功能来触发,但由于上述原因,我不能简单地创建模型观察者,否则我最终会得到重复的“审计”记录发出批量 api 请求。
我能想到的最好的办法是创建一个模型观察器,它能够确定被观察的模型是否正在更新或专门通过 nova 创建。如果保存或更新来自 Nova request/resource,我如何在模型上设置一个观察者来创建和更新事件,该事件只会 运行?
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);
});
}
我的 api 中有一个批量操作端点,允许在单个请求中创建或添加多个模型。创建这些模型后,我会派遣一个作业来创建一个“审计”记录,该记录引用所有已创建或更新的模型。
当有人在 Nova 仪表板中创建或更新记录时,我需要相同的功能来触发,但由于上述原因,我不能简单地创建模型观察者,否则我最终会得到重复的“审计”记录发出批量 api 请求。
我能想到的最好的办法是创建一个模型观察器,它能够确定被观察的模型是否正在更新或专门通过 nova 创建。如果保存或更新来自 Nova request/resource,我如何在模型上设置一个观察者来创建和更新事件,该事件只会 运行?
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);
});
}