有没有一种方法,我可以跟踪登录的用户活动在Laravel,而不使用任何软件包?我试过使用反托尼奥里贝罗/跟踪器包,但没有一个清晰的阅读手册。我想知道一些细节,比如用户访问的页面。PS:对于一个小项目,我通常创建一个简单的logPageHit()函数,我把它放在必要的Controller方法上,但是现在正在处理一个大项目
发布于 2017-08-09 14:02:56
如果用户当前处于联机状态,跟踪
您可以创建一个中间件
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
在$middlewareGroups中的web部分中添加上述代码。
\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希望能帮上忙。阅读这教程获得更多信息。
https://stackoverflow.com/questions/45592533
复制相似问题