在注销功能中,我需要获取$ time的值。用户登录时,该变量是在其他函数中声明的。
Broadcast::channel('chat', function ($user) {
$ip = Request::ip();
$time = now();
if (auth()->check() && !session()->has('name')) {
UserInfo::storeUser();
session()->put('name',$user->name);
return [
'id' => $user->id,
'ip' => $ip,
'name' => $user->name,
'joined' => $time,
];
}
});
当用户注销时,我必须检查他的“ id”和“ joined”的值。我该怎么办?
public function logout() {
$id = auth()->id();
$info = \App\UserInfo::where('id', $id)
-> where('joined', $time)
->update(['left' => now()]);
auth()->logout();
session()->forget('name');
session()->put('left',now());
return redirect('/');
}
答案 0 :(得分:1)
您必须使用主唯一键作为ID,并在表中创建一列“ user_id”以存储auth()-> id。在加入/启动登录会话时,将“ id”存储为应用程序中的“ session_id”。
您可以通过使用id来获得“ joined”值,
$joined = \App\UserInfo::where('id', auth()->session_id)
->select('joined')
->first()
->joined;
在会话结束时,使用ID更新左侧的详细信息,
$info = \App\UserInfo::where('id', auth()->session_id)
->update(['left' => now()]);