[英]How to get the time at which the current user logged in in Laravel?
这可以通过覆盖Auth/LoginController
的AuthenticatesUsers
特性中的一个方法来完成:
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/home';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
$user->authenticated_at = Carbon::now();
$user->save();
return redirect()->intended($this->redirectPath());
}
}
然后识别用户模型上的日期字段:
...
class User extends Authenticatable
{
use Notifiable;
protected $dates = ['authenticated_at'];
...
当然,将其添加到users表的/ a迁移文件中: $table->timestamp('authenticated_at')->nullable();
您可以通过$user->uptime
来获取“正常运行时间”的可能代码段:(添加到用户模型)
public function getUptimeAttribute(): int
{
return Carbon::now()->diffInSeconds($this->getAttribute('authenticated_at'));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.