Использование FOSRestBundle с формами


Нуб, вопрос, касающийся FOSRestBundle, JMSSerializerBundle и шаблонов.

Я пытаюсь заменить некоторый существующий код, который в настоящее время выводит json через twig, чтобы использовать 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, если я не ошибаюсь, это соответствует примерам, которые они предоставляют? Есть идеи, где я ошибаюсь?

Author: j0k, 2012-05-15

1 answers

Хорошо, не совсем самое чистое решение, которое я ожидал бы в Symfony, но, похоже, оно работает так:

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

Возвращает мне сущности myValue:

{"28":" По умолчанию 1", "103": "тест"}

 2
Author: MadManMonty, 2012-07-27 12:56:10