Symfony JsonResponse 忽略定义的 HTTP 代码并且只响应 200

Symfony JsonResponse ignoring defined HTTP code and only responses 200

我正在尝试更改响应中的 HTTP 代码,但我总是收到 200。 下面的代码在两个测试中都恢复了很多:

$app->put('/hdc/v1/pagamento/{pagamento_id}', function($pagamento_id, Request $request) use ($app) {

    $pagamento = Pagamento::find($pagamento_id);

    return new JsonResponse(["message"=>"error"],400); // returns 200
}




$app->put('/hdc/v1/pagamento/{pagamento_id}', function($pagamento_id, Request $request) use ($app) {

//    $pagamento = Pagamento::find($pagamento_id);

    return new JsonResponse(["message"=>"error"],400); // returns 400
}

与模型交互,JsonResponse 受到影响。为什么?

Postman screenshot

我觉得你没有用好方法。见 silex doc :

<?php
$app->put('/hdc/v1/pagamento/{pag_id}', function($pag_id, Request $request) use ($app) {
return $app->json(array('message' => 'error'), 400);
});

尴尬!

我的实体文件 Pagamento 有

?>

在文件底部。 当调用 Pagamento::find 方法时,它正在发送 200 代码 header。