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);
});