Laravel为身份验证提供了开箱即用的事件,所以我使用LoginListener
来记录数据库中的用户登录。
public function handle(Login $event) {
if (!isset($event->user) || empty($event->user) ||
!isset($event->user->userid) || empty($event->user->userid)) {
return false;
}
if (Auth::viaRemember())
Logins::create(array('userid' => $event->user->userid, 'type' => 3));
}
}
因此,每次通过remember-me标记对用户进行身份验证时,都会在logins
表中插入一个条目(user_id,type)。
问题是,有时我会为同一个登录事件获得多个插入内容 - 有时甚至是20行,所有内容都具有相同的CURRENT_TIMESTAMP
,user_id
和type
。所以,似乎登录事件被多次触发,并且监听器在同一秒内多次处理它
为什么会发生这种情况?
一些背景知识:
read
和write
连接分开