SlimFramework php v3,withStatus(500) 不起作用
SlimFramework php v3, withStatus(500) does not work
我开始学习 PHP Slim-Framework v3。但是有几次我觉得很难。
这是我的代码:
$app = new \Slim\App(["settings" => $config]);
$app->get('/', function(Request $request, Response $response, $args = []) {
$error = array('result' => false, 'message' => 'Bad Request', 'dev'=>'', 'data' => []);
$response->withStatus(500)->getBody()->write(json_encode($error));
});
现在我想在服务出现问题时以状态 500 响应用户。但不幸的是,这是行不通的。虽然我收到了回复,但它返回的是 200 个状态而不是 500 个。
我是做错了什么还是遗漏了什么?
我尝试调查其他问题,但没有找到任何帮助我的东西。
Response
-对象是不可变的,因此无法更改。方法 with*()
执行 return 具有更改值的 Response
对象的副本。
$app->get('/', function(Request $request, Response $response, $args = []) {
$error = array('result' => false, 'message' => 'Bad Request', 'dev'=>'', 'data' => []);
$response->write(json_encode($error)); // helper method for ->getBody()->write($val)
return $response->withStatus(500);
});
请参阅 为什么您不需要重新分配 write
上的值。
您也可以使用 withJson
代替:
$app->get('/', function(Request $request, Response $response, $args = []) {
$error = array('result' => false, 'message' => 'Bad Request', 'dev'=>'', 'data' => []);
return $response->withJson($error, 500);
});
我开始学习 PHP Slim-Framework v3。但是有几次我觉得很难。
这是我的代码:
$app = new \Slim\App(["settings" => $config]);
$app->get('/', function(Request $request, Response $response, $args = []) {
$error = array('result' => false, 'message' => 'Bad Request', 'dev'=>'', 'data' => []);
$response->withStatus(500)->getBody()->write(json_encode($error));
});
现在我想在服务出现问题时以状态 500 响应用户。但不幸的是,这是行不通的。虽然我收到了回复,但它返回的是 200 个状态而不是 500 个。
我是做错了什么还是遗漏了什么?
我尝试调查其他问题,但没有找到任何帮助我的东西。
Response
-对象是不可变的,因此无法更改。方法 with*()
执行 return 具有更改值的 Response
对象的副本。
$app->get('/', function(Request $request, Response $response, $args = []) {
$error = array('result' => false, 'message' => 'Bad Request', 'dev'=>'', 'data' => []);
$response->write(json_encode($error)); // helper method for ->getBody()->write($val)
return $response->withStatus(500);
});
请参阅 write
上的值。
您也可以使用 withJson
代替:
$app->get('/', function(Request $request, Response $response, $args = []) {
$error = array('result' => false, 'message' => 'Bad Request', 'dev'=>'', 'data' => []);
return $response->withJson($error, 500);
});