如何使用身份验证的 /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 AppUser::mapInto()
I also tried 
```php
return new UserResource::collection($request->user());
错误

:语法错误、意外的"集合"(T_STRING(、预期变量 (T_VARIABLE( 或"$">

return UserResource::collection($request->user()-get());

错误:尝试获取非对象的属性"类型名称">

那么我做错了什么? 感谢您的时间,如果需要更多详细信息,请告诉我

您可以使用Eager loading获得类似的结果,如果不是更好的结果。

样本:

Route::get('me', function(Request $request) {
$request->user()->load('types');
});

最新更新