5

これは単純なはずで、Google で検索してきましたが、「ルート」関連のアドバイスを思いつき続けています。

同じページへのリダイレクトを実行し、クエリ文字列パラメーターの1つを変更したいだけです(1つをクリアするか、1つを設定します)。

どこにもこれを行う方法がわかりません。

オプションとして、手動で URL を完全に生成し、これを使用することもできますが、それはあまり良い方法ではないようです。

$this->router->generate("http://domain.com?a=1")
4

2 に答える 2

9

あなたが何をしようとしているのか理解できれば幸いです...コントローラーで(?)使用します

$this->generateUrl(
    $request->attributes->get('_route'),
    array_merge(
        $request->query->all(),
        array('param' => 'val') // change the param
    )
);

URLを生成します。

于 2013-03-17T18:18:53.807 に答える
0

このリダイレクトの理由は何ですか? コントローラーからリダイレクトしたいと思いますよね?どのような結果を達成したいのかわかりません。同じアクション コントローラー (リダイレクト ループ) のコントローラーでのリダイレクトには注意が必要です。

ただし、コントローラーでは、次の方法でそれを行うことができます。

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

于 2013-03-17T18:22:04.227 に答える