Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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 如何在用户注销时节省时间?(已关闭)_Php_Laravel - Fatal编程技术网

Php 如何在用户注销时节省时间?(已关闭)

Php 如何在用户注销时节省时间?(已关闭),php,laravel,Php,Laravel,我使用Laravel 5.8身份验证和授权。 我有一个管理公司和员工的“管理员”。 当管理员登录时,我想显示新的公司和用户是什么 自上次管理会话以来创建。为此我想把它储存起来 管理员会话完成并从数据库查询的数据库时间 所有公司和工人都知道自上次会议以来创建的内容。 如果管理员使用注销我可以在数据库中存储时间,但如何 如果管理员刚刚关闭选项卡,则存储时间 --------------*- 我创建了中间件以节省上次请求的时间: public function handle($request, Clo

我使用
Laravel 5.8
身份验证和授权。 我有一个管理公司和员工的“管理员”。 当管理员登录时,我想显示新的公司和用户是什么 自上次管理会话以来创建。为此我想把它储存起来 管理员会话完成并从数据库查询的数据库时间 所有公司和工人都知道自上次会议以来创建的内容。 如果管理员使用
注销
我可以在数据库中存储时间,但如何 如果管理员刚刚关闭选项卡,则存储时间

--------------*-

我创建了中间件以节省上次请求的时间:

public function handle($request, Closure $next)
    {
        if(Auth::check()){
            $id = Auth::id();
            Admin::whereId($id)->update(['last_enter' => now("Europe/Moscow")]);
        }

        return $next($request);
    }

从轶事的角度讲,您可以使用with the event发送请求。我必须用它来捕获用户观看视频的时间,如果他们关闭了我需要录制的标签,这种方法对我来说一直有效

window.addEventListener('unload', function() {
    navigator.sendBeacon('your-url',
      JSON.stringify({})
    );
}, false);

或者,在用户关闭窗口的情况下,您可以将注销时间设置为会话超时时间,例如:
登录时间+会话超时时间=注销时间
,但这并不“准确”.

既然您只想使用laravel归档,我建议您检查
中间件。您可以有一个中间件,其中的请求将通过该中间件,所以您的最后一个请求意味着这是用户最后一次使用它


您可以在laravel中了解有关中间件的更多信息。

我只想为它使用laravel。@Loctarogar这是不可能的,laravel是服务器端的,只有在页面完成加载时才执行,您需要一些东西来侦听特定事件。@Loctarogar即使在laravel端也可以执行。您可以让中间件检查请求是否完成,这样您的最后一个请求就意味着这是用户最后一次使用它。另外,请注意,使用此处提供的方法在很多情况下都不起作用。@MagnusEriksson发送请求时,会话仍然处于活动状态,因此您应该很好。这是怎么回事?如果你让标签打开大约一个小时,让它坐在那里,然后关闭它。然后会话将不再处于活动状态(除非您更改了超时时间)。我建议记录用户的最后一个请求,而不是在他们关闭选项卡时。如果没有别的,他们可能已经加载了页面,打开了一个新的标签,开始在其他地方浏览,然后在一个小时左右关闭了你的应用标签,但他们实际上没有看到自初始加载以来发生的任何事情。你甚至可以更进一步,记录不同路由请求的时间。这很有意义。