Deserializar Formularios

Saludos,

Tengo una API REST que retorna el CreateView() en JSON para las acciones /new de varios recursos con el FOSRestBundle. Mi idea es que desde otra aplicación por separado obtener ese objeto FormView a través de la libreria Guzzle en el controlador y retornarlo a la plantilla para manipular el diseño y el orden en que se muestra.

Sin embargo no ha pidido ser posible transformar el objeto ya que arroja distintos errores pareciendo ser que no se puede hacer lo que pienso.

Por ejemplo en el controlador hago algo esto...

$client = $this->get('app.apihandler');
$serializer = $this->container->get('serializer');
$response = $client->request('GET', 'condominios/cuentas/new');
$apiContent = $response->getBody()->getContents();
$object = $serializer->deserialize($apiContent, 'Symfony\Component\Form\FormView', 'json');
return $this->render('backend/ajax/administracion/cuentas_bancarias_form.html.twig', array('form' => $object));

Y al intentar ver la ruta me arroja lo siguiente...

Uncaught PHP Exception Twig_Error_Runtime: "An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Argument 1 passed to Symfony\Component\Form\FormRenderer::searchAndRenderBlock() must be an instance of Symfony\Component\Form\FormView, array given, called in D:\webs\sadin\www\app\cache\dev\twig\17\17de88b61fdabe1cd67515e16694bf044f9438c1c66a7f8fc9a5480385f4cfd0.php on line 68 and defined") in "backend/ajax/administracion/cuentas_bancarias_form.html.twig" at line 45.

La linea 45 tiene el {{ form_row(form.numero) }}

Que opciones recomendarian o como creen que puedo reutilizar el resultado de la API?

Respuestas

#1

Ya vi cual es el problema, por alguna razon el objeto serializado que retorna la vista del la API no esta completo. El dump de la variable en la API es distinto a la que se muestra al imprimir el JSON.

Lo que no se es porque ocurre esto asi y quien es el responsable para reportarlo si el FOSRestBundle o el JMSSerializerBundle.

¿Alguien me daria alguna recomendación?.