0

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

4

2 回答 2

1

您可以使用带有事件的日志包,例如请点击此链接

或者Laravel Eloquent 有很多事件来管理

希望这对你有用!!!

于 2017-08-09T13:49:31.533 回答
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 回答