如何覆盖 laravel 注销核心事件?
How can I override laravel logout core event?
我正在尝试广播 Illuminate\Auth\Events\Logout。是否可以覆盖或扩展此核心事件以包含 BroadcastOn 方法?
您无法覆盖核心注销事件。关于这个问题有两种方法。无论哪种方式,您都必须触发自定义事件。
- 覆盖
AuthenticatesUsers
中的 loggedOut()
方法:
您必须创建自定义事件并重写 AuthenticatesUsers
中的 loggedOut()
方法才能像这样手动触发它:
protected function loggedOut(Request $request)
{
event(new CustomLogoutEvent());
}
这将触发核心事件和您的自定义事件。
- 覆盖
SessionGuard
以覆盖logout()
(冗长且不建议):
logout()
in SessionGuard
是触发核心注销事件的地方。覆盖它以仅触发您的自定义事件。这样只会触发一个注销事件。
下面是覆盖守卫的方法:https://laravel.com/docs/7.x/authentication#adding-custom-guards
我正在尝试广播 Illuminate\Auth\Events\Logout。是否可以覆盖或扩展此核心事件以包含 BroadcastOn 方法?
您无法覆盖核心注销事件。关于这个问题有两种方法。无论哪种方式,您都必须触发自定义事件。
- 覆盖
AuthenticatesUsers
中的loggedOut()
方法:
您必须创建自定义事件并重写 AuthenticatesUsers
中的 loggedOut()
方法才能像这样手动触发它:
protected function loggedOut(Request $request)
{
event(new CustomLogoutEvent());
}
这将触发核心事件和您的自定义事件。
- 覆盖
SessionGuard
以覆盖logout()
(冗长且不建议):
logout()
in SessionGuard
是触发核心注销事件的地方。覆盖它以仅触发您的自定义事件。这样只会触发一个注销事件。
下面是覆盖守卫的方法:https://laravel.com/docs/7.x/authentication#adding-custom-guards