【发布时间】:2014-07-31 11:19:17
【问题描述】:
我正在尝试从 Symfony2 中的字符串呈现表单并在变量中获取结果。 我尝试了这个解决方案,Symfony 2 Twig form functions not available,但我收到一个错误(服务'twig.form.renderer'不可用)。所以我改变了 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' 并带有消息 'No block "form" found while rendering the form”
【问题讨论】:
-
是否必须使用字符串而不是仅包含
{{ form(form) }}内容的模板? -
我也可以使用模板,但我想我会遇到同样的问题。
-
好吧,我最终使用了一个更简单的方法,通过定义一个服务:twig.stringloader: class: Twig_Loader_String tags: - { name: twig.loader } 然后 echo $c->get ('twig')->render('{{ form(form) }}', array('form' => $form));
-
比只使用带有表单块的模板更简单?