每页都有Symfony2简单的联系表格

时间:2013-12-20 16:22:23

标签: php symfony twig block

我希望在每个页面的页脚中都有一个简单的联系表单。我已经创建了一个在单独的页面上正常工作的控制器。但是当我在模板中渲染控制器时:

{% render(controller('MyBundle:Default:contact', {'request': app.request })) %}

它正在用于呈现表单,验证和发送邮件但是

1。)我的flashmessage没有显示:

$this->get('session')->getFlashBag()->add(...)

和2.)当我尝试重定向时,我收到错误

return $this->redirect($this->generateUrl('homepage'))

所以我的问题是:

  • 如何设置Flash消息并重定向?
  • 在树枝上呈现控制器实际上是最佳做法吗?或者还有其他方法吗?

(我也尝试创建一个twig扩展但遇到了其他不同的问题,比如我不能使用formbuilder函数等...)

1 个答案:

答案 0 :(得分:2)

来自get的方法FlashBag除了获取消息之外还删除它...所以可能你之前曾在某处调用过get方法。例如,以下代码始终不显示任何内容:

{% if (app.session.flashbag.get('message')) %}
    <div class="message">{{ app.session.flashbag.get('message') }}</div>
{% endif %}

如果是这种情况,那么您应该在条件中使用get方法而不是第一个has

如果您想要获取并且仅从闪存包中获取消息而不删除它,则可以使用peek方法。