基本上非常简单:只是一个理论问题。
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
}