我读到laravel单证Events和Notifications,我们似乎可以触发一个事件并从该事件(使用ShouldBroadcast接口)广播给laravel回音我明白了,在另一方面,我们可以使用的通知viaBroadcast做同样的,所以有什么区别?
Chr*_*hvh 59
所提供的答案缺乏imo是在大多数情况下它们使用而不是1或其他,这似乎是所提供的答案/问题的基调.
事件在您的应用程序中具有重要意义.我们假设您的应用程序是一个网上商店.
您的网上商店中的重要操作可以是产品购买.购买产品时,您需要执行许多不同的步骤.把这一切都放在一个控制器内,可能放在几个不同的地方可能会变得非常混乱而且不清楚.
因此,一个好方法是使用名为ProductPurchased的事件.此事件可以具有监听器,在这种情况下,这些监听器是用户购买产品时需要执行的所有步骤.
例如:ProductPurchased(事件)
假设我们想在购买产品时通过短信和电子邮件通知我们的客户.
所以在notifyClient事件监听器上我们可以创建一个Notification.此通知负责向客户端发送消息.这可以是SMS/Slack-message/Email/......
就像你提到的那样,事件和通知都可以放在队列中或者可以进行广播.
Pez*_*vak 24
在经过深思熟虑之后,我发现它们是为不同的东西而制造的,这就是我所理解的:
声明:
考虑一下facebook,每次登录时都会看到一堆关于你在哪里发生的事情的通知,如果你在场,你会看到实时通知.
与此同时,您收到了有关您想要的通知的电子邮件......这正是Laravel Notifications正在做的事情.你可以notify在你雄辩的模型上使用方法,例如App\User关于OrderApproved你计划为你做什么的事情,比如向那个用户发送短信.并且您还可以在数据库中保存该通知的一个瞬间,以便当用户回来时他或她可以看到您已经批准了他们的订单.
事件:
当事情发生时,比如创建一个新用户并且你想做不同的事情,如发送验证电子邮件,发送验证短信和..这就是你创建一个事件的原因,这样你就可以使用监听器处理该事件的不同逻辑.在广播方面,您可以ShouldBroadcast在活动中使用界面,从那里您可以与管理面板同步数据,以便注册新用户.当管理员正在观看用户列表而没有重新加载页面时,这将非常有用,您可以Laravel Echo在管理面板上接收该事件,并将新注册的用户附加到列表中.
结论:
它真的取决于你需要什么,如果你只想更新你的界面中的东西,也许你需要的事件.但如果你需要做更多,你可以使用通知.
在事件发生的时候,当你需要做某些事情时,会使用最终事件.
希望它能帮到别人..