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

时间:2015-09-30 14:30:56

标签: php forms symfony controller embed

我正在使用Symfony 2并且在嵌入表单中遇到一些问题。

情况:

MyBundle / Resources / views / Portions / footer.html.twig视图包含在MyBundle / Resources / views / layout中,当然layout.twig.html由所有包视图扩展。 Whish表示footer.html.twig显示在所有页面中。

问题/问题:

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

处理此问题的优化解决方案是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

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

简单地定义一项服务,作为一个全球化的树枝,这样你就可以随时将你的表格提供给树枝。

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

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

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