Я хочу сделать пост-звонок с оставшимся API, используя guzzlehttp
в symfony
...
Я написал этот код, но ответ
/**
* @Route("/post/")
*/
public function postAction()
{
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', $url, [
'form_params' => [
'username' => 'test',
'password' => 'test',
]
]);
return $this->render('esterne/post.html.twig', array(
'response'=>$response,
));
}
это файл ветки post.html.twig
{{response}}
результат таков:
{"status":"200","data":{"is_auth":true,"userToken":"194b873c004716acb3e0a5fba09fe405"}}
но если я введу html:
return $this->render('esterne/post.html.twig', array(
'response'=>$response->getBody(),
));
это приводит к ошибке 500 внутренняя ошибка сервера
[2018-11-14 09:56:35] request.CRITICAL: Uncaught PHP Exception Twig_Error_Runtime: "Возникла исключительная ситуация при рендеринге шаблона (" Catchable Fatal Error: Объект класса GuzzleHttp \ Psr7 \ Response не может быть преобразовано в строку ")." в /app/app/Resources/views/esterne/post.html.twig строка 1 {"исключение": "[объект] (Twig_Error_Runtime (код: 0): во время рендеринга шаблона возникло исключение (\" Catchable Fatal Error: Объект класса GuzzleHttp \ Psr7 \ Response не может быть преобразован в строку \ "). At /app/app/Resources/views/esterne/post.html.twig:1, ErrorException (код: 0): Catchable Неустранимая ошибка: объект класса GuzzleHttp \ Psr7 \ Response не может быть преобразован в строку по адресу /app/var/cache/prod/twig/47/478ca9f9b0a5c69caa7b0fed874bf831466230764635f396f057dc2c338682321 * []
РЕШЕНИЕ
использовать файл
{{ response|json_encode()|raw }}
в веточке и
return $this->render('esterne/post.html.twig', array(
'response'=>json_decode($response->getBody()->getContents(), FALSE),
));