2017-08-09 145 views
0

有没有办法在不使用任何软件包的情况下跟踪Laravel中的登录用户活动?我曾尝试使用antonioribeiro/tracker软件包,但没有明确的阅读手册。我想知道用户访问的页面等细节。 PS:对于一个小项目,我通常创建一个简单的logPageHit()函数,我将其放置在必要的控制器方法上,但现在正在处理一个大项目Laravel跟踪用户活动

+0

有很多方法,如果你尝试写或使用谷歌等在线跟踪系统... –

回答

1

您可以使用具有事件的日志包,这link

OR Laravel雄辩有许多事件manage

希望这对你的工作!

+0

谢谢@AddWeb解决方案私人有限公司但我想尽量不使用任何软件包。 – brightniyonzima

0

跟踪,如果用户是目前在线

您可以创建一个中间件

php artisan make:middleware LastUserActivity 

里面的handle方法,我们需要添加以下代码:

if(Auth::check()) { 
    $expiresAt = Carbon::now()->addMinutes(5); 
    Cache::put('user-is-online-' . Auth::user()->id, true, $expiresAt); 
} 

围棋到App \ Http \ Kernel.php

web部分添加上面的代码,在$ middlewareGroups里面。

\App\Http\Middleware\LastUserActivity::class, 

注:重要的是,它的StartSession中间件后添加,否则,验证门面将不能访问登录的用户。

转到App \ User.php并添加此方法。

public function isOnline() 
{ 
    return Cache::has('user-is-online-' . $this->id); 
} 

现在在您的任何视图中使用此选项。

@if($user->isOnline()) 
    user is online!! 
@endif 

希望它有帮助。有关更多信息,请阅读this教程。

+0

谢谢@Nikolas。然而,这不是我正在寻找的东西。我意识到,也许我太宽泛了,所以我编辑我的问题更清晰。 – brightniyonzima