Это может быть достигнуто путем переопределения одного из методов из черты AuthenticatesUsers
внутри Auth/LoginController
:
<?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'];
...
И, конечно, добавьте это в файл миграции / / для таблицы пользователей: $table->timestamp('authenticated_at')->nullable();
И возможный фрагмент, который вы можете использовать для получения 'uptime' с помощью $user->uptime
: (добавить вМодель пользователя)
public function getUptimeAttribute(): int
{
return Carbon::now()->diffInSeconds($this->getAttribute('authenticated_at'));
}