我在Laravel 5.8应用程序中使用侦听器来记录用户操作。
我想为用户登录和注销时创建日志记录。
我的登录功能工作正常:我可以通过auth()->id()
检索用户 ID。
我在注销功能中识别注销的用户 ID 时遇到问题。
我有我的订阅者:
$events->listen(
'IlluminateAuthEventsLogout',
'AppListenersUserEventSubscriber@handleUserLogout'
);
我正在尝试查找已注销用户的用户ID...
<?php
namespace AppListeners;
use Log;
use Auth;
use IlluminateAuthEventsLogout;
use IlluminateAuthEventsLogin;
use AppUser;
class UserEventSubscriber
{
public function handleUserLogout($event) {
return $this->recordCandActivity(array(auth()->id(), 'logged out', 'User logged Out', 'Logout', 'No link'));
}
但是auth()->id()
(当然(在注销后呈现为空。
有谁知道从身份验证注销事件中检索刚刚注销的用户 ID 的方法?
提前谢谢。
如果你看一下 Illuminate\Auth\Events\Logout 文件,你可以看到它有两个属性:user
和guard
。
可以通过侦听器中的$event
参数访问这些属性。
public function handleUserLogout($event) {
return $this->recordCandActivity($event->user->id, 'logged out', 'User logged Out', 'Logout', 'No link'));
}