从树枝扩展返回模板

时间:2014-06-13 20:49:36

标签: php symfony twig

我有一个表单放在我网站的很多页面上,我想写一个Twig Extension来构建和处理表单。我认为如果我注入Twig模板服务并使用呈现的表单呈现模板,它将起作用。但我得到了一份循环参考资料。我的问题是如何从扩展程序返回该模板?

1 个答案:

答案 0 :(得分:0)

假设您的行为具有以下形式:

public function formAction()
{
    //Code goes here with no difference from a regular action
    return $this->render('MyBundle:Base:form.html.twig', array('form' => $form->createView()));
}

假设MyBundle:Base:form.html.twig是一个Twig模板,其中包含渲染表单所需的所有标记。假设控制器位于MyBundle:Form:form,每个页面(但表单模板)都有MyBundle:Base:template.html.twig的模板。在该模板中,在您希望的任何位置添加以下行:

{{ render(controller('MyBundle:Form:form')) }}

这样你可以在所有页面中“注入”你想要的任何方法。然后,您可以将表单的操作设置为任何控制器操作,以便它可以正确处理它。