📅  最后修改于: 2023-12-03 15:23:12.299000             🧑  作者: Mango
在 Laravel 中获取当前登录用户的详细信息非常简单。本文将演示如何使用 Laravel 的内置身份验证系统获取当前登录用户的详细信息。
在使用 Laravel 中的身份验证系统之前,需要先在 app/Http/Kernel.php
文件的 $routeMiddleware
属性中注册 auth
中间件。如下所示:
protected $routeMiddleware = [
// ...
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
// ...
];
此中间件将确保用户已经登录并被授权访问受保护的页面。
一旦你已经定义了 auth
中间件,你现在可以在你的控制器或路由中调用 Auth
Facade 来访问当前用户信息。当然,你需要在控制器或路由文件的顶部导入 Auth
Facade。如下所示:
use Illuminate\Support\Facades\Auth;
现在,你可以通过调用 Auth::user()
方法获取当前经过身份验证的用户。这个方法将返回一个 App\Models\User
实例,其中包含当前用户的详细信息。如下所示:
$user = Auth::user();
通常情况下,你需要获取当前用户的一些详细信息,例如电子邮件、姓名、电话等等。你可以在 User
模型中定义访问器来获取这些信息。在这里,我们将定义一个 email_address
访问器来获取当前登录用户的电子邮件地址。如下所示:
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
// ...
public function getEmailAddressAttribute()
{
return $this->attributes['email'];
}
// ...
}
通过定义 getEmailAddressAttribute
访问器,我们现在可以通过以下方式访问当前登录用户的电子邮件地址:
$email = $user->email_address;
在本文中,我们了解了如何使用 Laravel 的内置身份验证系统获取当前经过身份验证的用户的详细信息。通过访问器,我们还学习了如何获取当前登录用户的电子邮件地址。感谢您的阅读!