Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果浏览器关闭了laravel,则自动注销_Php_Laravel - Fatal编程技术网

Php 如果浏览器关闭了laravel,则自动注销

Php 如果浏览器关闭了laravel,则自动注销,php,laravel,Php,Laravel,如何在用户离开laravel 4.2中的页面时自动注销。我使用auth::atempt登录转到/app/config/session.php。 改变 'expire_on_close' => false, 到 经过几天的努力,终于找到了解决这个问题的办法。 我们可以用助手来做这件事 例如,如果将会话表用于存储会话,则可以执行以下操作: 在session.php中: public function GetUsersId() { return Session::whereNotNul

如何在用户离开laravel 4.2中的页面时自动注销。我使用auth::atempt登录

转到
/app/config/session.php。

改变

'expire_on_close' => false,


经过几天的努力,终于找到了解决这个问题的办法。 我们可以用助手来做这件事 例如,如果将会话表用于存储会话,则可以执行以下操作: 在session.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;
}
} 这将查找所有在线用户并将其设置为在线,同时将其余用户设置为离线。 最后,要使用此帮助程序,请在composer.json文件中向“自动加载”部分添加以下行:

"autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers.php"
    ],
现在,在主布局刀片文件或任何控制器中,您可以简单地使用它,如下所示:

@php
SetUsersMode();
@endphp

您可以根据需要命名函数或助手。 这是我在几天内找到的最简单的方法。
希望这有助于加速编码。

不起作用,还可以访问Route::group(array('before'=>'auth')、function(){..})中的url@我也有同样的问题。你找到解决办法了吗?
@php
SetUsersMode();