これは単純なはずで、Google で検索してきましたが、「ルート」関連のアドバイスを思いつき続けています。
同じページへのリダイレクトを実行し、クエリ文字列パラメーターの1つを変更したいだけです(1つをクリアするか、1つを設定します)。
どこにもこれを行う方法がわかりません。
オプションとして、手動で URL を完全に生成し、これを使用することもできますが、それはあまり良い方法ではないようです。
$this->router->generate("http://domain.com?a=1")
あなたが何をしようとしているのか理解できれば幸いです...コントローラーで(?)使用します
$this->generateUrl(
$request->attributes->get('_route'),
array_merge(
$request->query->all(),
array('param' => 'val') // change the param
)
);
URLを生成します。
このリダイレクトの理由は何ですか? コントローラーからリダイレクトしたいと思いますよね?どのような結果を達成したいのかわかりません。同じアクション コントローラー (リダイレクト ループ) のコントローラーでのリダイレクトには注意が必要です。
ただし、コントローラーでは、次の方法でそれを行うことができます。
public function indexAction()
{
// ...
return $this->redirect($this->generateUrl($request->attributes->get('_route'), array('paramName' => $paramValue)));
}
私の意見では、イベントリスナーを書くことを検討すべきです: http://symfony.com/doc/current/book/internals.html#handling-requests