2013-03-12 21 views
5

twigのGETパラメータ値を置き換える方法はありますか?Twig - GETパラメータの値を動的に置き換えます。

は例えば、私はこのアドレスにページを持っている:

http://localhost/app_dev.php/test/?param1=40&sort=name 

そして、私の小枝に私はこのような3つのリンク構築したい:私は "&ソートを追加した今の

http://localhost/app_dev.php/test/?param1=40&sort=name 
http://localhost/app_dev.php/test/?param1=40&sort=address 
http://localhost/app_dev.php/test/?param1=40&sort=code 

を"パラメータはURLの最後にもう一度追加されますが、この解決法は実際には"パッチ "であり、それは嫌です!この例では

<a href="{{app.request.requesturi}}&sort=address">address</a> 

は、私は2つのパラメータを持っていますが、それを生成していますリンクは提出することによって得られているため、現実には、私は、周りの6つのパラメータを持っています。

+0

質問が分かりません。もっと詳しく説明できますか? – Bart

+0

まあ...私は現在のURLを取得し、既存のパラメータの値を置き換える必要があります。提供されている例では、URLを「ソート」の別の値で再構築したい場合は –

答えて

22

これはあなたの問題を解決する必要があります追加する前に更新したいもの。

+2

ありがとう!これで解決します:) –

+0

素晴らしい!これは私の問題の多くを解決しました: – Rvanlaak

+0

あなた...私はあなたが好きです^^ –

2

Symfony/Twig path機能はオプションのパラメータを受け入れます。これらのパラメータがルートの一部である場合、それらはルータによって処理されますが、そうでなければGETパラメータとして渡されます。

だから、あなたの対応するルートがある場合、たとえば、my_routeのために:それは、現在のルートとにマージされているすべてのクエリパラメータを取得します

{{ path(app.request.attributes.get('_route'), 
    app.request.query.all|merge({'sort': 'address'})) }} 

<a href="{{ path('my_route', {'param1':40, 'sort':'address'}) }}">address</a> 
+0

ですが、6つのパラメータのリストがあればどうなりますか?私はすべてのパラメータのリンクを構築する必要がありますか?生成されたリンクは

... –

+0

を送信して取得します。PéCé - 質問を編集してより明確にしました。 –

+0

あなたの答えは@insertusernamehereです。リクエストパラメータを保持し、変更したいパラメータだけを置き換えます。 – AlterPHP

関連する問題