получить HTTP-код в ответе json в laravel - PullRequest
0 голосов
/ 23 октября 2018

Мне нужно сохранить код ответа, который был отправлен через json, например 404:

Route::fallback(function(){
    return response()->json(['message' => 'Not Found'], 404);
})->name('api.fallback.404');

Я пытался с этим кодом:

use Illuminate\Http\JsonResponse as Resp;

if (!$this->response_code) {
     $this->response_code = Resp::getStatusCode();
}

, но Laravel возвращает мне эту ошибку:

Нестатический метод Symfony \ Component \ HttpFoundation \ Response :: getStatusCode () не должен вызываться статически

Ответы [ 3 ]

0 голосов
/ 23 октября 2018

Ответ Хайме выглядит довольно неплохо как общее решение любой ошибки, когда говорят, что он не может быть вызван статически, но я вообще не вижу этот метод для объекта Illuminate\Http\JsonResponse - отсюда и ошибка 500, о которой вы сообщили.

Документация Laravel для JsonResponse указывает, что вы можете вызвать status () для объекта JsonResponse, чтобы получить значение int кода ответа.

0 голосов
/ 23 октября 2018

Вы можете использовать http_response_code () , чтобы получить код ответа.

$this->response_code = http_response_code;
0 голосов
/ 23 октября 2018

Вы пытаетесь вызвать нестатический метод (то есть метод, принадлежащий объекту) из самого класса.Попробуйте это:

use Illuminate\Http\JsonResponse as Resp;

if (!$this->response_code) {
  $this->response_code = $this->getStatusCode();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...