有没有一种方法可以在不使用任何包的情况下跟踪 Laravel 中的登录用户活动?我曾尝试使用 antonioribeiro/tracker 包,但没有清晰的自述手册。我想知道用户访问的页面等详细信息。PS:对于一个小项目,我通常会创建一个简单的 logPageHit() 函数,我将它放在必要的 Controller 方法上,但现在正在处理一个大项目
问问题
9827 次
2 回答
1
跟踪用户当前是否在线
您可以创建一个中间件
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 门面将无法访问已登录的用户。
转到 App\User.php 并添加此方法。
public function isOnline()
{
return Cache::has('user-is-online-' . $this->id);
}
现在在您的任何视图中使用它。
@if($user->isOnline())
user is online!!
@endif
希望能帮助到你。阅读本教程以获取更多信息。
于 2017-08-09T14:02:56.580 回答