3

我对 Laravel 很陌生,想知道如何设置一个函数来在事件上运行。具体来说,当用户注销时,我该如何调用函数?

最好的方法是什么,注册一个新的注销事件,或者 Laravel 7 是否已经有一个文件我可以编辑以在注销时运行命令?

谢谢你的帮助。

4

2 回答 2

0

您可以监听事件Illuminate\Auth\Events\Logout

于 2020-07-13T16:29:07.113 回答
0

确实已经定义了一个注销事件,当用户注销时会触发该事件。它位于Illuminate\Auth\Events\Logout

您需要创建一个新事件Listener,然后告诉 Laravel 让该侦听器订阅 Logout 事件,方法是将映射添加到 EventServiceProvider.php,如下所示:

class EventServiceProvider extends ServiceProvider
{

    protected $listen = [
        ...
        Logout::class => [
            'App\Listeners\HandleLogout',
        ],
        ...
    ];
   
    ...

然后您可以在 app/Listeners 中创建一个 Listener 类,如下所示:

注销处理程序.php

class LogoutHandler
{
    /**
     * Handle the event.
     *
     * @param  Logout  $event
     * @return void
     */
    public function handle(Logout $event)
    {
        $event->user; // The user that logged out
        #event->guard; // The auth guard used
    }
}

于 2020-07-13T16:29:59.603 回答