Php 如何获得准确的用户加上用户';jwt token laravel在laravel的确切帖子
我试图在另一个表中获取单个用户的列表以及他/她的帖子,同时在标题中传递用户jwt令牌Php 如何获得准确的用户加上用户';jwt token laravel在laravel的确切帖子,php,laravel,jwt,Php,Laravel,Jwt,我试图在另一个表中获取单个用户的列表以及他/她的帖子,同时在标题中传递用户jwt令牌 public function getAuthenticatedUser() { try { if (! $user = JWTAuth::parseToken()->authenticate()) { return response()->json(['user_not_found'], 404); } } catch (
public function getAuthenticatedUser()
{
try {
if (! $user = JWTAuth::parseToken()->authenticate()) {
return response()->json(['user_not_found'], 404);
}
} catch (Tymon\JWTAuth\Exceptions\TokenExpiredException $e) {
return response()->json(['token_expired'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\TokenInvalidException $e) {
return response()->json(['token_invalid'], $e->getStatusCode());
} catch (Tymon\JWTAuth\Exceptions\JWTException $e) {
return response()->json(['token_absent'], $e->getStatusCode());
}
// the token is valid and we have found the user via the sub claim
$user = auth()->user();
$userid = User::where('id', $user->id);
$return = UserResource::collection($userid);
return response()->json($return);
}
当我这样做的时候
BadMethodCallException: Call to undefined method Illuminate\Database\Eloquent\Builder::mapInto() in file C:\xampp\htdocs\doc\vendor\laravel\framework\src\Illuminate\Support\Traits\ForwardsCalls.php on line 50
#0 C:\xampp\htdocs\doc\vendor\laravel\framework\src\Illuminate\Support\Traits\ForwardsCalls.php(36): Illuminate\Database\Eloquent\Builder::throwBadMethodCallException('mapInto')
但如果我这样做
$user = auth()->user();
$userid = User::find($user);
$return = UserResource::collection($userid);
return response()->json($return);
我得到了一个响应,但返回了两个用户,而不是使用jwt令牌的确切用户
当我返回justauth()->user()时,我得到了jwt的确切用户,但没有post资源
$return = new UserResource($userid);
如何获得准确的用户加上用户的准确帖子我在下面的代码片段中看到了一个问题
User::where('id', $user->id);
where是在查询生成器上调用where的语法糖,因此它返回一个查询生成器,以这种方式检索用户
User::where('id', $user->id)->first();
其次,为这个确切的案例创建了一个名为find()的助手,您可以对模型类进行静态调用
$user = User::find($user->id);
编辑
$return = UserResource::collection($userid);
需要一个集合,因此将其更改为单个资源
$return = new UserResource($userid);
我在下面的代码片段中看到了一个问题
User::where('id', $user->id);
where是在查询生成器上调用where的语法糖,因此它返回一个查询生成器,以这种方式检索用户
User::where('id', $user->id)->first();
其次,为这个确切的案例创建了一个名为find()的助手,您可以对模型类进行静态调用
$user = User::find($user->id);
编辑
$return = UserResource::collection($userid);
需要一个集合,因此将其更改为单个资源
$return = new UserResource($userid);
尝试
User::where('id',$User->id)->first()代码>BadMethodCallException:调用文件C:\xampp\htdocs\doc\vendor\laravel\framework\src\illighte\Support\Traits\ForwardsCalls.php中未定义的方法App\User::mapInto(),第50行这是ResponseyUser::where('id',$User->id)->first()代码>BadMethodCallException:调用文件C:\xampp\htdocs\doc\vendor\laravel\framework\src\light\Support\Traits\ForwardsCalls.php第50行中的未定义方法App\User::mapInto()。这是responseBadMethodCallException:调用未定义方法App\User::mapInto()第50行的文件C:\xampp\htdocs\doc\vendor\laravel\framework\src\illumb\Support\Traits\Forwa rdsCalls.php中BadMethodCallException:调用第50行的文件C:\xampp\htdocs\doc\vendor\laravel\framework\src\illumb\Support\Traits\Forwa rdsCalls.php中未定义的方法App\User::mapInto()