2017-02-28 66 views
1

我想检查用户是否在使用该系统。如何使用Laravel刷新页面上的数据库?

我知道有一个last_login,带有标准的laravel类UpdateLastLoggedInAt。

public function handle(Login $event) 
{ 
    $event->user->last_login = Carbon::now(); 
    $event->user->save(); 
} 

如果用户让浏览器窗口保持打开状态,则这不起作用。

有没有办法让它在每一页刷新或路线变化(用户浏览网站),改变last_login到那个时间?

在此先感谢。

+0

要么你可以写一个中间件,它会记录每个请求的时间。或者你可以使用JavaScript在特定的时间间隔点击一个URL来记录时间。 –

+0

是的,我创建了一个中间件,谢谢你! – Rubberduck1337106092

+0

如果您已经这样做了,那么问题是什么? :D –

回答

0

我为此创建了一个中间件并将其包装在所有路线中。

class LogLastSeen 
{ 
/** 
* Handle an incoming request. 
* 
* @param \Illuminate\Http\Request $request 
* @param \Closure $next 
* @return mixed 
*/ 
public function handle($request, Closure $next) 
{ 
    $user = User::find(Auth()->user()->id); 
    $user->last_login = Carbon::now(); 
    $user->save(); 
    return $next($request); 
} 
相关问题