Не удается получить данные POST, потому что они всегда нулевые - PullRequest
0 голосов
/ 20 сентября 2019

Когда я пытаюсь получить данные POST в Symfony 2.8, я продолжаю получать null.Я использую сервис Angular для совершения звонка следующим образом:

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

Как вы можете видеть ниже, полезная нагрузка отправляемых данных видна:

enter image description here

В моих маршрутах у меня есть это:

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

И в моем действии в $ request я получаю null для POST, но я получаю getпараметры, которые я отправил в URL (для целей отладки):

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

1 Ответ

2 голосов
/ 20 сентября 2019

Вы отправляете свои данные / данные в теле запроса, а не как отдельные параметры.

Вам необходим доступ.request->all() извлекает параметры запроса и публикации, а не тело.

Вам нужно сделать:

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