2013-12-20 56 views
1

我想在每個頁面的頁腳中有一個簡單的聯繫表單。我已經創建了一個在單獨頁面上正常工作的控制器。但是,當我使模板內的控制器:Symfony2簡單的聯繫表格在每個頁面上

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

它正在渲染的形式,驗證和發送不顯示我的flashmessage的郵件,但

1):

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

和2)當我嘗試重定向我得到一個錯誤

​​3210

所以我的問題是:

  • 如何設置閃光燈消息和重定向?
  • 在樹枝中渲染控制器實際上是最佳實踐嗎?或者還有其他方法嗎?

(我也嘗試創建一個樹枝延伸,但遇到了不同的問題,其他像我不能使用formbuilder功能等)

+0

您正在使用哪個symfony2版本,並且可以顯示重定向錯誤消息? – sebbo

+0

最新版本2.4.0。對於flashbang我沒有得到一個錯誤,它只是沒有顯示。重定向我得到: '''在渲染模板期間拋出異常。在MyBundle中顯示「http://localhost/name/web/app_dev.php/kontakt」(狀態碼爲302)。「)時發生錯誤:page:kontakt.html.twig at line 19.''' –

回答

2

方法getFlashBag除了除了收到消息刪除。所以可能你之前在某處調用過get方法。例如總是下面的代碼顯示什麼:

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

如果是這樣的話,那麼代替第一get你應該在條件中使用has方法。

如果您想獲得更多信息,只需從閃存包中獲取消息,而不刪除它,則可以使用peek方法。