Laravel跟踪用户活动

时间:2017-08-09 13:45:49

标签: laravel user-activity

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

2 个答案:

答案 0 :(得分:1)

您可以使用包含事件的日志包,例如请遵循此link

Laravel Eloquent为manage提供了许多活动

希望这对你有用!!!

答案 1 :(得分: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中间件之后添加它非常重要,否则,Auth facade将无法访问登录用户。

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

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

现在在你的任何观点中使用它。

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

希望它有所帮助。阅读this教程了解更多信息。