2016-07-07 12 views
1

私はSymfony2コントローラを作成しています。私のコントローラはユーザーを削除し、成功または失敗のメッセージを表示します。これは機能しており、応答は次のようになります。Symfony2でリダイレクトとレスポンスを一緒にバンドルする方法

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

問題が1つあります。ウェブサイトはindex/{username}/にあります。私は代わりにindex/に着陸し、そこにメッセージを表示するようにウェブサイトを希望します。私は、次の応答をリダイレクトすることができています:

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

質問は、私が一緒に両方の応答を束ねない方法ですので、私はindex/にリダイレクトしてもそこにメッセージを表示しますか?

+0

Annotations、Templates&Configuration/Routesを使用する場合、この余分なコード行をすべて行う必要はありません。ここをクリックhttp://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html –

答えて

1

あなたが一緒に2つの異なる応答をバンドルすることはできません...コントローラは、ある種のResponseオブジェクトを返さなければならない...と一つだけ...

あなたは最善の解決策フラッシュメッセージを利用することです。..あなたはリダイレクトされた後にflashbag(基本的にはセッションです)にあなたのメッセージを保存し、リダイレクトされた後に "インデックス"で見ることができます...

あなたはforwardでも、実際にはブラウザに301を送信せずに、別のコントローラへのリクエストをすることができます。...それはあなたと一緒に遊ぶことができる別の解決策かもしれません...

関連する問題