2012-05-14 10 views
8

Noob, pregunta relacionada con FOSRestBundle, JMSSerializerBundle y plantillas.Uso de FOSRestBundle con formularios

Estoy intentando reemplazar algún código existente que actualmente está produciendo json vía twig para usar FOSRestBundle. Esto ha sido exitoso cuando el contenido que se transmitía desde el Controlador estaba originalmente en matrices, pero ahora estoy intentando pasar un formulario a FOSRestBundle, el resultado es que mis valores nunca se devuelven.

El código siguiente reproduce la situación

/** 
* my sample get action 
* @View(templateVar="form") 
*/ 
public function getAction($id) 
{ 
    ...   
    $form = $this->createFormBuilder(array('myValue' => 'SOMEVALUE')) 
     ->add('myValue', 'hidden') 
     ->getForm(); 

    $view = FOSView::create($form); 
    $view->setFormat('json'); 

    return $this->get('fos_rest.view_handler')->handle($view); 
} 

vuelve

{"children":{"_token":[],"myValue":[]}} 

lo que esperaba ver aquí fue algo así como:

{"children":{"_token": "mylongtoken","myValue": "SOMEVALUE"}} 

He estado basando mi código en los ejemplos en LiipHelloBundle, a menos que esté equivocado esto coincide con los ejemplos que proporcionan? ¿Alguna idea de dónde me estoy equivocando?

+0

¿No tiene que llamar a' $ form-> createView() 'antes de pasarlo al controlador de vista? –

+0

hmm, quizás. Sin createView() obtengo '{" hijos ": {" _ token ": []," myValue ": []}}' con createView Aún así termino con solo: '{" _token ": [], "myValue": []} ' – MadManMonty

Respuesta

2

mal, no es exactamente la solución más limpia que se puede esperar dentro de Symfony, pero parece que funciona de modo:

$form->createView()->get('form')->get('form')->getChild('myValue')->get('choices') 

me devuelve la entidades MyValue:

{ "28": "Default1 "," 103 ":" prueba "}

+0

Gracias por su respuesta :) –

Cuestiones relacionadas