答案:在Laravel中可通过Auth门面或auth()函数获取当前登录用户信息。1. 使用Auth::user()或auth()->user()获取用户实例,Auth::id()或auth()->id()获取用户ID;2. 在Blade模板中用@if(auth()->check())判断登录状态并显示用户名和ID;3. 需确保路由应用auth中间件,API场景下配置正确守卫,避免未登录时访问属性导致异常。

在 Laravel 中,获取当前登录用户的信息非常简单,主要通过内置的 Auth 门面 或 auth() 辅助函数 来实现。以下是如何使用它们来获取当前用户信息和用户 ID 的常用方法。
使用 Auth 门面获取用户信息
在控制器或中间件中,可以通过引入 Illuminate\Support\Facades\Auth 来访问当前认证用户。示例代码:
use Illuminate\Support\Facades\Auth; // 获取当前用户模型实例 $user = Auth::user(); // 获取用户 ID $userId = Auth::id(); // 获取其他用户信息 $username = $user->name; $email = $user->email;注意:如果用户未登录,
Auth::user() 将返回 null,因此在访问属性前最好先判断是否已登录。
使用 auth() 辅助函数(更简洁)
Laravel 提供了全局辅助函数 auth(),用法更简洁,无需 use 语句。示例代码:
// 获取当前用户
$user = auth()->user();
// 获取用户 ID
$userId = auth()->id();
// 判断用户是否已登录
if (auth()->check()) {
echo '用户已登录,ID 是:' . auth()->id();
}
在 Blade 模板中获取用户信息
在视图文件中,也可以直接使用 Auth 门面或 Laravel 提供的快捷方式。Blade 模板示例:
@if(auth()->check())
欢迎你,{{ auth()->user()->name }}
你的 ID 是:{{ auth()->id() }}
@endif
常见注意事项
- 确保路由应用了 auth 中间件,否则可能无法获取用户信息。
- 在 API 开发中,若使用 Sanctum 或 Passport,请确认认证守卫配置正确(如 guard: api)。
- 调用
user()前建议先用check()判断登录状态,避免出现空指针异常。










