无法获取 POST 数据,因为它始终为空

Can't get POST data because it's always null

当我尝试在 Symfony 2.8 中获取 POST 数据时,我一直在获取 null。我正在使用 Angular 服务来拨打这样的电话:

this.http.post(`****/app/relation/saveEmployeeWorkHours`, JSON.stringify({workHours}));

正如您在下面看到的,我发送的数据的有效负载是可见的:

在我的路线中我有这个:

app_addEmployeeDays:
  path: /app/relation/saveEmployeeWorkHours.{_format}
  defaults: { _controller: CompoRelationBundle:Api\Relation:saveEmployeeWorkHours, _format: 'json' }
  requirements:
    _method : POST

在 $request 的操作中,我得到了 POSTnull 但我确实得到了我在 URL 中发送的 get 参数(用于调试目的):

public function saveEmployeeWorkHoursAction(Request $request){
    $response = $request->request->all(); // Gives array(0)
    $response = json_encode($response);
    $response = new Response($response);
    return $response; // Returns []
}

您在请求正文中发送您的 data/payload,而不是作为单独的参数。

您需要访问。 request->all() 检索查询和 post 参数,而不是正文。

您需要做的:

$body     = $request->getContent();
$response = json_encode($body);
// etc