我正在尝试从Symfony2中的字符串渲染表单并将结果输入变量。 我尝试了这个解决方案,Symfony 2 Twig form functions not available但是我收到了一个错误(service' twig.form.renderer' not avaliable)。所以我改变了addExtension部分(不确定类)。 这是我的代码:
$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 \ LogicException'有消息'没有阻止"形式"在渲染表单时发现#34;
答案 0 :(得分:0)
您应该包含form_div_layout,其中form
块已定义。
答案 1 :(得分:0)
对于twig模板,我使用此代码:
$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());