我想从api返回值时遇到一些问题,当我使用dd()
函数时,它将显示结果。但是当我使用return时,它不会显示结果
Route::middleware('auth:api')->get('/user', function (Request $request) {
dd($request->user());
});
Route::middleware('auth:api')->get('/user', function (Request $request) {
return response()->json($request->user());
});
有什么想法可以展示它吗?
答案 0 :(得分:1)
那是因为您返回的是GenericUser
,Illuminate\Auth\GenericUser
,而不是雄辩的模型;您没有为Guard使用的用户提供程序使用口才模型。此类没有任何方法可以像Model一样将该对象序列化为JSON,并且没有json_encode
可以序列化的任何公共属性。
如果您json_encode
该对象,您将获得JSON表示法的空对象:
echo json_encode(new Illuminate\Auth\GenericUser(['id' => 1]));
// {}
也许您想使用诸如App\User
之类的口才模型进行身份验证?
config/auth.php
$providers = [
...
'users' => [
'dirver' => 'eloquent',
'model' => App\User::class,
],
];
您当前正在为'database'
提供者使用'users'
驱动程序,因此您将获得GenericUser
来代表您的用户。