在 Laravel 5.4 中,可以使用内置的 Auth
facade 和 Login
事件来跟踪登录用户花费的时间。下面是一个实现的示例:
app/Providers/EventServiceProvider.php
文件中,注册 Login
事件的监听器。在 boot
方法中添加以下代码:use Illuminate\Auth\Events\Login;
use Illuminate\Support\Facades\Event;
public function boot()
{
parent::boot();
Event::listen(Login::class, function ($event) {
$event->user->last_login_at = now();
$event->user->save();
});
}
app/User.php
)中,添加一个 last_login_at
字段来存储用户的最后登录时间。确保在模型中将该字段添加到可填充的属性列表中:protected $fillable = [
// 其他字段...
'last_login_at',
];
Login
事件将被触发,监听器将更新用户模型的 last_login_at
字段为当前时间。要获取用户花费的时间,你可以在需要的地方使用以下代码:
use Illuminate\Support\Facades\Auth;
// 获取当前登录用户
$user = Auth::user();
// 获取最后登录时间
$lastLoginTime = $user->last_login_at;
// 计算花费的时间
$spentTime = $lastLoginTime->diffInSeconds(now());
以上代码将返回用户最后登录时间与当前时间之间的秒数差,即用户花费的时间。
这是一个基本的实现示例,你可以根据自己的需求进行扩展和优化。关于 Laravel 的更多信息和文档,请参考 Laravel 官方文档。
领取专属 10元无门槛券
手把手带您无忧上云