事件与拉拉维尔的观察者

2022-08-30 15:37:56

我真的对事件和观察者感到困惑。因为两者都在做同样的事情。黑白事件和观察者有什么区别?提前致谢。


答案 1

观察者和事件根本不做同样的事情。

简单区别

观察者基本上是仅在雄辩模型上发生的预定义事件(创建记录,更新记录,删除等)。事件是通用的,不是预定义的,可以在任何地方使用,而不仅仅是在模型中。

观察员:

观察者观察在雄辩中发生的特定事情,例如保存,保存,删除,删除(还有更多,但你应该明白这一点)。观察者专门绑定到模型。

事件:

事件是由程序员想要的任何东西驱动的操作。如果要在有人加载页面时触发事件,则可以执行此操作。与观察者不同,事件也可以排队,并通过laravel的cron心跳运行。事件是程序员有效定义的。它们使您能够处理不希望用户等待的操作(例如购买 pod cast)

该文档在涵盖这些方面做得很好。

参考资料:https://www.scratchcode.io/laravel/difference-between-events-and-observers-in-laravel/


答案 2

还行。因此,请弄清楚一件事 事件和观察者没有做同样的事情。

什么是事件?

当特定任务发生时触发事件。例如,创建,更新,删除某些模型(这些是来自laravel的默认模型)。您也可以分派/触发自定义事件或 。product.likeduser.commented

https://laravel.com/docs/5.7/events#defining-events

什么是观察者?

正如 name 状态,这些类观察/处理上面提到的那些事件。因此,如果我们说我们想在创建用户或用户创建时做某事(这是在进入DB之前)。我们定义了观察者,如果您熟悉方法之前和之后的方法,您可以建立联系。

https://laravel.com/docs/5.7/eloquent#observers


推荐