Сериализация данных с использованием Unirest в symfony3

Я хотел бы найти мой лиц по запросу. Все хорошо с моей серверной стороной работы. Я проверял в почтальоне, что ссылка / чел / запрос работает хорошо, конечно, когда я добавляю? name = aaa, это работает хорошо. Но проблема в моем коде Symfony, когда я нажимаю на Поиск Кнопка дала мне список всех людей, например, если ничего не работает, поэтому после сброса переменной я обнаружил, что проблема заключается в теле переменной, которое я использую, я пытался изменить его, но он не работает. Вот мой код:

PersonController.php

  public function listAction(Request $request) {

$serializer = new Serializer(
array(new GetSetMethodNormalizer(), new ArrayDenormalizer()),
array(new JsonEncoder())
);
$headers = array('Accept' => 'application/json');
$response = Unirest\Request::get(link/persons/',$headers);
$person = $serializer->deserialize($response->raw_body,
Person::class, 'json');
$form = $this->createForm(PersonType::class, $person);

if ($request->isMethod('POST')) {
$form->handleRequest($request);
$headers = array('Accept' => 'application/json');
//$body = json_encode($person);
$body = Unirest\Request\Body::multipart($person);
//$body = serialize($person);
dump($body);
$response = Unirest\Request::get('link/persons/query',
$headers,$body);
//$response = Unirest\Request::get('link/persons
// /query?firstName=aaa'); (this works well)
dump($response->body);
return $this->render('AppBundle:Person:PersonList.html.twig',
array (
'form' => $form->createView(),
'persons' => $response->body,
) );
}

$response = Unirest\Request::get('link/persons/',$headers);
//$this->assertEquals(Response::HTTP_OK, $response->getStatusCode());
if ($response->body == null) {
return $this->render('AppBundle:Person:PersonList.html.twig',
array (
'form' => $form->createView(),
'persons' => $response->body,
) );
}

return $this->render('AppBundle:Person:PersonList.html.twig',
array (
'form' => $form->createView(),
'persons' => $response->body,
) );
}

В противном случае, вот интересная часть моего файла Person.html / Twig

<form novalidate="novalidate" method="post">
{{ form_row(form.name) }}
{{ form_rest(form) }}
<div class="form-group col-md-offset-5">
<button type="submit" class="btn btn-default">Search</button>
</div>
</form>

Поэтому, когда я нажимаю в Поиск, функция «listAction» выполняется, но проблема в том, что мой $ тела не очень хороший

0

Решение

Наконец я нашел ответ. Я должен был сериализовать и десериализовать свои данные. Поэтому я должен был просто заменить:

$body =  $serializer->serialize($person, 'json');

От:

$var =  $serializer->serialize($person, 'json');
$body = Json_decode($var , true);

Проблема заключалась в том, что я не конвертировал свой JSON в массивы, вот что json_decode Функция сделать.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]