laravel - 如何使用 Authentication 的 /user api 来使用 Laravel 资源
问题描述
我正在使用 Axios 和 Passport 使用 Laravel 和 Vue 构建一个项目。
我的身份验证正在工作并生成令牌并保存在我的本地存储中以检查登录。
我也正在使用
Route::middleware('auth:api')->get('/user', function (Request $request) {
return $request->user();
});
但是,我的用户也有一些我在我的模型中描述过的关系,比如
public function types()
{
return $this->belongsTo(types::class, 'type_id');
}
我的用户资源看起来像这样
public function toArray($request)
{
$array = parent::toArray($request);
$array['group'] = $this->groups;
$array['type'] = $this->types->typeName;
return $array;
}
因此,当用户登录时,我尝试使用 auth:api 获取用户数据,但是我希望与它建立关系。
我试过了
Route::middleware('auth:api')->get('/user', function (Request $request) {
return UserResource::collection($request->user());
});
and get error
> Call to undefined method App\User::mapInto()
I also tried
```php
return new UserResource::collection($request->user());
错误:语法错误,意外的“集合”(T_STRING),期望变量(T_VARIABLE)或“$”
return UserResource::collection($request->user()-get());
错误:试图获取非对象的属性“typeName”
那么我做错了什么?感谢您的宝贵时间,如果需要更多详细信息,请告诉我
解决方案
您可以使用Eager loading
. 资源
样本:
Route::get('me', function(Request $request) {
$request->user()->load('types');
});
推荐阅读
- c# - 无论泛型类型如何,如何声明一个列表使其包含一个泛型类?
- android - Android Studio - 无法解析 Android 应用程序模块的 Gradle 配置。解决 gradle 构建问题和/或重新同步
- javascript - 以角度为顶部查看的数据创建条形图
- windows - 为什么 Windows 资源管理器只显示 .txt 文件?
- c++ - ProtocolBuffers:从 C++ 代码中设置嵌套的 OneOf 值
- javascript - Adobe 分析 - 退出点击总是伴随着应用程序内所有链接的页面查看
- go - REST API 中的异步函数调用
- c - C 表达式必须是可修改的左值
- sap - 要删除/删除项目组的 papi 是什么,如何删除?
- javascript - 如何覆盖 Hihgchart.js 网络图默认节点悬停效果?