请问下 $request->user (); 是什么用法?
在路由文件中看到了这段代码,看了user()的源码也没看明白,特来求教。
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
关于 LearnKu
Request类里面的user方法调用了
getUserResolver()方法,getUserResolver()方法返回了成员变量$userResolver,这个类提供一个setUserResolver方法设置$userResolver,但是整个类里面并没有调用到这个方法,而且这个方法是public,显然是给外部调用的可以通过
dd(app('request'))观察到框架运行之后,Request的$userResolver是有值的,映射到了/vendor/laravel/framework/src/Illuminate/Auth/AuthServiceProvider.php文件的83至85行可以看到是
registerRequestRebindHandler方法,这里就对Request设置了$userResolver,然后将设置好的Request重新注册到服务容器,这个方法里面调用了服务容器Auth服务的userResolver()方法,最终就相当于$request->user()调用了Auth->userResolver()