我需要保存通过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()
答案 0 :(得分:0)
您试图从Class本身调用一个非静态方法(即属于该对象的方法)。试试这个:
use Illuminate\Http\JsonResponse as Resp;
if (!$this->response_code) {
$this->response_code = $this->getStatusCode();
}
答案 1 :(得分:0)
Jaime的答案作为解决任何错误的通用解决方案都不错,因为他们说不能静态调用它,但是我根本看不到Illuminate\Http\JsonResponse
对象上的方法,因此报告了500错误回来。
JsonResponse
的Laravel文档表明,您可以在JsonResponse
对象上调用status(),以获取响应代码的int值。
答案 2 :(得分:0)
您可以使用http_response_code()来获取响应代码。
$this->response_code = http_response_code;