如何解决Laravel Nova:仅观察模型并根据 Nova 请求采取行动
我的 api 中有一个批量操作端点,允许在单个请求中创建或添加多个模型。创建这些模型后,我会分派一个作业来创建一个“审计”记录,该记录引用所有创建或更新的模型。
当有人在 Nova 仪表板中创建或更新记录时,我需要相同的功能来触发,但由于上述原因,我不能简单地创建模型观察者,否则在批量制作时最终会得到重复的“审计”记录api 请求。
我能想到的最好方法是创建一个模型观察器,它能够确定被观察的模型是否正在更新或通过 nova 专门创建。我如何在模型上为创建和更新事件设置观察者,这些事件只会在保存或更新来自 Nova 请求/资源时运行?
解决方法
如果您只想在与 Nova 相关的 HTTP 请求期间附加观察者, 您可以在应用程序的 NovaServiceProvider 中的 Nova::serving 事件侦听器中注册观察者。此侦听器只会在 Nova 请求期间执行:
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
parent::boot();
Nova::serving(function () {
User::observe(UserObserver::class);
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。