我希望在每个页面的页脚中都有一个简单的联系表单。我已经创建了一个在单独的页面上正常工作的控制器。但是当我在模板中渲染控制器时:
{% render(controller('MyBundle:Default:contact', {'request': app.request })) %}
它正在用于呈现表单,验证和发送邮件但是
1。)我的flashmessage没有显示:
$this->get('session')->getFlashBag()->add(...)
和2.)当我尝试重定向时,我收到错误
return $this->redirect($this->generateUrl('homepage'))
所以我的问题是:
(我也尝试创建一个twig扩展但遇到了其他不同的问题,比如我不能使用formbuilder函数等...)
答案 0 :(得分:2)
来自get
的方法FlashBag
除了获取消息之外还删除它...所以可能你之前曾在某处调用过get方法。例如,以下代码始终不显示任何内容:
{% if (app.session.flashbag.get('message')) %}
<div class="message">{{ app.session.flashbag.get('message') }}</div>
{% endif %}
如果是这种情况,那么您应该在条件中使用get
方法而不是第一个has
。
如果您想要获取并且仅从闪存包中获取消息而不删除它,则可以使用peek
方法。