如何在laravel 4.2中当用户离开页面时自动注销。我使用 auth::atempt 登录
转到/app/config/session.php.
改变
'expire_on_close' => false,
自
'expire_on_close' => true,
经过几天的挣扎,终于找到了一种方法。我们可以使用助手来做到这一点例如,如果您将会话表用于存储会话,则可以这样做:会话中.php:
public function GetUsersId()
{
return Session::whereNotNull('user_id')
->where('last_activity', '>=', now()->subMinutes(1))
->pluck('user_id');
}
这将为您提供过去 1 分钟内的活动用户。然后在帮助程序文件中,您可以编写:
if (!function_exists('SetUsersMode')) {
function SetUsersMode()
{
$OnlineIds = (new App'Session)->GetUsersId();
User::whereNotIn('id', $OnlineIds)->update(['Mode' => 'OFF']);
User::whereIn('id', $OnlineIds)->update(['Mode' => 'ON']);
return true;
}
}这将找到所有在线用户并将其设置为在线,并将其设置为离线。最后,要使用此帮助程序,请在 composesr.json 文件中将以下行添加到自动加载部分:
"autoload": {
"psr-4": {
"App''": "app/"
},
"files": [
"app/Helpers.php"
],
现在,在主布局边栏选项卡文件或任何控制器中,您可以简单地使用它,如下所示:
@php
SetUsersMode();
@endphp
您可以随意命名函数或助手。这是我几天来发现的最简单的方法。希望这有助于某人加快编码速度。