如何在事件监听器中获得经过身份验证的用户 - Laravel

时间:2018-05-19 18:10:06

标签: php laravel laravel-5.6

我正在尝试确定在事件监听器中获取经过身份验证的用户信息的正确方法。

我总是可以使用似乎有用的\Auth:user(),但如果我将侦听器排队,我认为它不会起作用。

我是否需要将经过身份验证的用户添加到事件类中作为每个事件的属性,还是有其他方法可以执行此操作?

1 个答案:

答案 0 :(得分:2)

传递用户through the event。触发事件时,您应该可以访问Auth外观。

事件:

class SomeEvent
{
    // Public so that it will be accessible from the listener
    public $user;

    public function __construct(User $user)
    {
        $this->user = $user;
    }
}

监听器:

class SomeListener
{
    public function handle(SomeEvent $event)
    {
        // Get the public property `$user` from the event
        $authUser = $event->user;
    }
}

触发:

event(new SomeEvent(auth()->user()));