提问者:小点点

Symfony2:将窗体呈现为字符串


我试图从Symfony2中的字符串呈现一个表单,并在变量中得到结果。我尝试了这个解决方案,Symfony 2树枝形式功能不可用,但我得到一个错误(服务'twig.form.renderer'不可用)。所以我改变了addExent部分(不确定类)。这是我的代码:

$env = new \Twig_Environment(new \Twig_Loader_String());
$rendererEngine = new \Symfony\Bridge\Twig\Form\TwigRendererEngine();
$env->addExtension(new \Symfony\Bridge\Twig\Extension\FormExtension(new \Symfony\Bridge\Twig\Form\TwigRenderer($rendererEngine)));
$form = $this->createFormBuilder()->add('testField', 'text');
$form = $form->getForm()->createView();
return $env->render(
    '{{ form(form) }}',
    array('form' => $form)
);

现在,我得到了“致命错误:未捕获异常'Symfony\Component\Form\exception\logiception',并在呈现表单时显示消息'No block'Form'


共2个答案

匿名用户

对于细枝模板,我使用以下代码:

$twig = $this->container->get('twig');
$twig->initRuntime();

return JsonResponse::create(array(
    'success' => false,
    'form' => $twig->getExtension('form')->renderer->searchAndRenderBlock($form->createView(), 'widget'),
));

对于php模板引擎:

$this->container->get('templating.helper.form')->widget($form->createView());

匿名用户

您应该包括定义form块的form_div_layout。