php - 解决了。api响应laravel不显示
问题描述
当我想从 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());
});
任何想法如何展示它?
解决方案
那是因为您返回的是GenericUser
, Illuminate\Auth\GenericUser
,而不是 Eloquent 模型;您没有为 Guard 正在使用的用户提供者使用 Eloquent 模型。此类没有任何方法可以像 Model 那样将此对象序列化为 JSON,并且没有任何json_encode
可以序列化的公共属性。
如果你使用json_encode
这个对象,你会得到一个 JSON 表示法的空对象:
echo json_encode(new Illuminate\Auth\GenericUser(['id' => 1]));
// {}
也许您想使用 Eloquent 模型来App\User
进行身份验证?
config/auth.php
$providers = [
...
'users' => [
'dirver' => 'eloquent',
'model' => App\User::class,
],
];
您当前正在'database'
为您的提供者使用驱动程序,'users'
因此您可以得到一个GenericUser
代表您的用户的驱动程序。
推荐阅读
- python - 如何将两个 JSON 加载到 python 中,将它们转换为一个对象,然后区分它们?
- django - 在我的 Django 应用程序中使用 Celery 和 Redis
- merge - 使用 Meld 视觉差异和合并工具处理 [re]moved 行
- tensorflow - 为什么 tensorflow 模型文件的大小取决于数据集的大小?
- python - Python tkinter 代码 - 带有导入图像按钮的框架
- docker - golang如何获取容器ID
- h2 - 在我的 Java 应用程序中,H2 比 HSQLDB 慢得多?(都是inmem)
- movesense - Android 应用开发:寻找同步两个传感器时间戳的最佳方式
- sql - 如何获取季度回顾期的数据
- tabulator - 在制表器的工具提示中访问当前行上的其他单元格