Symfony 2 -在所有视图中包含表单,并由一个控制器处理


Symfony 2 - included form in all views and handled by one controller

我正在使用Symfony 2,并且有一个嵌入表单的小问题。

情况:

MyBundle/资源/视图/部分/footer.html。包含在MyBundle/Resources/views/layout中的twig视图,当然,layout.twig.html是由所有bundle视图扩展的。这意味着footer.html.twig会显示在所有的页面中。

问题/问题:

我想嵌入一个简报表单(一个输入)在页脚。html。这将由一个控制器处理(验证数据、数据库插入和电子邮件发送),然后返回到同一页面。

解决这个问题的最佳方案是什么?

谢谢。

一个简单的方法(不是最好的方法)

是简单地定义一个服务,作为一个全局分支,这样你就可以让你的表单一直可用。

# Twig Configuration
twig:
    ...
    globals:
        myGlobaService: "@acme.newsletter_service"

另一种简单的方法是使用twig render标签,包含整个渲染模板的控制器动作。

{{ render(controller('AcmeNewsLetterBundle:Default:renderNewsletterForm', {})) }}