返回路由中的当前用户(用户对象不会传递)



基本上非常简单:只是一个理论问题。

Route::get('/', function(User $user) {
dd($user->id);
//Returns null

那么,为什么会返回 null 呢? 我正在传递(登录的)用户对象,但它没有通过。这不是应该这样吗? 是的,我的意思是你可以去说获取身份验证实例等等,但一般来说,这绝对应该通过当前登录用户的用户对象吗?

use AppUser;

Route::get('/', function(User $user) {
echo Auth::user($user);
});

use IlluminateHttpRequest;
Route::get('/', function(Request $request) {
echo $request->user();
});

您可以做的是使用 Request 获取用户对象,这样您就可以完全访问用户对象所需的任何数据。

// don't forget to include
use IlluminateHttpRequest;
Route::get('/', function(Request $request) {
dd($request->user());
});

从那里,您可以使用$request->user()->id;获取当前用户 ID。

检索经过身份验证的用户 ID

Route::get('/', function() {
dd(Auth::user()->id);
//or for laravel 5.7 or above
dd(Auth::id()); });

试试这段代码 如果您使用身份验证:

Route::get('/', function() {
return Auth::user()->id
}

Route::get('/', function(User $user,$username) {
$user = $user->where('username',$username)->first();
return $user->id
}

相关内容

  • 没有找到相关文章

最新更新