2012-05-14 11 views
8

Noob, Frage zu FOSRestBundle, JMSSerializerBundle und Vorlagen.Verwenden von FOSRestBundle mit Formularen

Ich versuche, einige vorhandenen Code zu ersetzen, der gerade Json über Zweig ausgibt, um das FOSRestBundle zu verwenden. Dies war erfolgreich, wenn der Inhalt, der vom Controller übergeben wurde, ursprünglich in Arrays war, aber jetzt versuche ich ein Formular an FOSRestBundle zu übergeben, das Ergebnis ist, dass meine Werte nie zurückgegeben werden.

Der folgende Code repliziert das Szenario

/** 
* 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); 
} 

kehrt

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

, was ich wie hier war etwas zu sehen erwartet:

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

Ich habe meinen Code wurde gründend auf die Beispiele in LiipHelloBundle, es sei denn, ich irre mich das entspricht den Beispielen, die sie bieten? Irgendwelche Ideen, wo ich falsch liege?

+0

Müssen Sie' $ form-> createView() 'nicht aufrufen, bevor Sie es zum View-Handler übergeben? –

+0

hmm, vielleicht. Ohne createView() bekomme ich '{" children ": {" _ token ": []," myValue ": []}}' mit createView komme ich immer noch mit nur: '{" _token ": [], "myValue": []} ' – MadManMonty

Antwort

2

OK, nicht gerade die sauberste Lösung, die ich innerhalb von Symfony erwarten würde, aber es scheint so zu funktionieren:

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

Gibt mir die myValue Einheiten:

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

+0

Vielen Dank für Ihre Antwort :) –

Verwandte Themen