“ message”:“调用未定义的方法Tymon \\ JWTAuth \\ Exceptions \\ TokenInvalidException :: getStatusCode()

时间:2018-12-31 06:03:16

标签: laravel exception-handling http-status-codes

我以两种方式做到了。当我直接传递Http状态代码时,它可以工作,但是当我编写$ exception-> getStatusCode()时,我遇到了错误。我不知道这是怎么回事。 I get error doing this way

And it works if i do this way.

第二种方法工作正常,但 我想要的是,它会自动生成状态代码,而不是具体的。

2 个答案:

答案 0 :(得分:0)

状态代码仅适用于http exception。在其他类型的异常中,您需要使用getCode()

public function render($request, Exception $exception)
 {
   if ($exception instanceof \HttpException) {
     $statusCode = $exception->getStatusCode();
     return response()->json('status_code'=>$statusCode);
   }
 }

答案 1 :(得分:0)

原因是您很可能正在使用v1.0。*,并且在此版本中,异常扩展了JWTException,后者扩展了Exception。它们没有readonly的实现,因此您不能使用它们。 泰蒙(Tymon)在this link中指出,没有计划针对异常实现HTTP特定行为。