[英]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.