2016-07-07 57 views
1

我正在編寫Symfony2控制器。我的控制器刪除一個用戶,然後顯示成功或失敗消息。這是工作和響應看起來像:如何在Symfony2中將重定向和渲染響應捆綁在一起

return $app['twig']->render('index.twig', array('list' => $list,'msg' => $msg)); 

有一個問題。該網站登陸index/{username}/。我希望網站改爲登陸index/並在那裏顯示消息。我可以用下面的響應重定向:

return new RedirectResponse('/index/users/'); 

的問題是我怎麼都響應捆綁在一起,所以我重定向到index/,也顯示該消息嗎?

+0

如果您使用註釋,模板和配置/路徑不需要執行所有這些額外的代碼行。點擊此處查看http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html –

回答

1

你不能捆綁2個不同的反應在一起......控制器必須返回某種形式的Response對象...只有一個...

你最好的解決辦法是採取提示信息優勢.. 。你可以在flashbag(這基本上是會話)中存儲你的消息,然後在你被重定向後在「索引」上查看它們......因爲它們在第一次讀取後消失,所以它們被稱爲閃存....

你也可以forward內部的其他控制器的請求,而不實際發送一個301到瀏覽器.. ...這可能是另一種解決方案,你可以玩...

相關問題