2012-05-14 8 views
8

नोब के साथ FOSRestBundle का उपयोग करना, FOSRestBundle, JMSSerializerBundle और टेम्पलेट से संबंधित प्रश्न।फॉर्म

मैं कुछ मौजूदा कोड को प्रतिस्थापित करने का प्रयास कर रहा हूं जो वर्तमान में FOSRestBundle का उपयोग करने के लिए जेसन के माध्यम से जेसन आउटपुट कर रहा है। यह सफल रहा है जहां नियंत्रक से सामग्री पारित की जा रही थी मूल रूप से सरणी में थी, लेकिन अब मैं एक फॉर्म को FOSRestBundle में पास करने का प्रयास कर रहा हूं, नतीजा यह है कि मेरे मूल्य कभी वापस नहीं आते हैं।

कोड के नीचे परिदृश्य

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

रिटर्न

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

प्रतिकृति क्या मैं यहाँ देखने की उम्मीद थी कुछ की तरह:

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

मैं पर मेरे कोड आधारित किया गया है LiipHelloBundle में उदाहरण, जब तक कि मैं गलत नहीं हूं, यह उन उदाहरणों से मेल खाता है जो वे प्रदान करते हैं? कोई विचार जहां मैं गलत जा रहा हूँ?

+0

क्या आपको हैंडलर देखने के लिए इसे पास करने से पहले' $ form-> createView() 'कॉल करना नहीं है? –

+0

हम्म, शायद। CreateView के बिना() मुझे '{" बच्चे ": {" _ टोकन ": []," myValue ": []}}' createView के साथ मैं अभी भी समाप्त होता हूं: '{" _token ": [], "myValue": []} ' – MadManMonty

उत्तर

2

ठीक है, नहीं बिल्कुल साफ समाधान मैं Symfony भीतर उम्मीद होती है, लेकिन यह इतना काम करने के लिए लगता है:

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

मुझे रिटर्न myValue संस्थाओं:

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

+0

आपके उत्तर के लिए धन्यवाद :) –