【问题标题】:Returning a Template from a Twig Extension从 Twig 扩展返回模板
【发布时间】:2014-06-13 20:49:35
【问题描述】:

我有一个放置在我网站的许多页面上的表单,我想编写一个 Twig 扩展来构建和处理该表单。我认为如果我注入 Twig 模板服务并使用渲染的表单渲染模板,它会起作用。但我得到了一个循环引用。我的问题是如何从扩展中返回该模板?

【问题讨论】:

  • 你能把你做的代码贴出来吗?

标签: php symfony twig


【解决方案1】:

假设您的操作具有以下形式:

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')) }}

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-13
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 2023-03-23
    • 1970-01-01
    • 2016-10-13
    相关资源
    最近更新 更多