2016-10-26 6 views
2

私は経路を生成するのにSilexでurl Twig関数を使用しようとしていますが、テンプレートに渡した変数名を使用すると、パラメータを指定しなかったという警告が生成されます。Twigで変数を使用してルートパラメータ名を設定するにはどうすればよいですか?

これは私がテンプレートに渡しています配列です:

[ 
    "total_pages" => $pages, 
    "current_page" => $page, 
    "route_name" => "gallery_album", 
    "route_parameter" => "groupname", 
    "route_value" => $groupname 
    ] 

そして、私が使用しようとしていますテンプレート中:

{{ url(route_name, {route_parameter: route_value, 'page': page}) }} 

(ページ変数値がテンプレートで働いています)

これは私が作成しているページネーションテンプレートの一部なので、パラメータを変数にする必要があるため、別のページに適用できます。 、私は行方不明です根本的な何かを、私は、これは非常に単純である何かであると感じ

enter image description here

:私はこれを実行するとこれは私が取得エラーです。

答えて

1

それはroute_parameterが文字列のキー名や変数ではないと考えている:

あなたは、たとえば行うことができます。

{% set params = {'page': page, (route_parameter): route_value } %} 
{{ url(route_name, params) }} 
+0

ありがとうございますが、動作しませんでした。私は 'do'関数のために"ページ区切り "で"値の "予期しないトークン"演算子 "("文ブロックの終わり "が予期される)というエラーを取得します。 (私はTwigバージョン1.25.0を使用しています) –

+0

@RussellSeymour実際には '(var):val'構文でこれを行う簡単な方法があることに気付きました。私の更新された答えを見てください。 – martin

+0

これはうまくいきました。ありがとうございました。 –

0

あなたがSilex\Application\UrlGeneratorTraitを使用している場合は、あなたのアプリケーションクラスに{{ app->path}}または{{ app->url }} を使用することができます

またはこれを使用した代替方法

{{ app.url_generator.generate('homepage') }} 
関連する問題