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