2014-12-04 27 views
0

我想使用一個部分樹枝模板創建不同頁面上的品牌列表。問題是,在不同的情況下,我們想鏈接到不同的路線。一些路線有一個額外的參數(可能會有所不同),其他的則不然。如何將路線和其他路徑參數傳遞到部分樹枝模板

所以,局部模板可能看起來像:

<ul> 
    {% for brand in brands %} 
     <li> 
      <a href="{{ path(route, {'brand': brand.name, (routeExtraParamName): routeExtraParamValue}) }}">{{ brand.name }}</a> 
     </li> 
    {% endfor %} 
</ul> 

這將是如何使用它:

{% include 'partials/brand_list.html.twig' with { "brands" : brands, "route" : "brand", "routeExtraParamName": "something", "routeExtraParamValue": "test" } only %} 

但是,這是不是很好。我們經常看到類似的問題,我們需要一個乾淨的界面來處理部分,他們不應該知道使用它們的上下文。但是,像更改附加參數的鏈接這樣的簡單任務使得這變得更加困難。

您是否有更好的解決方案的想法?

回答

0

您可以定義所有路由參數數組並直接發送到您的局部模板:

{% set params = {'param1': 'value1', 'param2': 'value 2', 'param3': 'value 3' %} 

{% include 'partials/brand_list.html.twig' with { "brands" : brands, "route" : "brand", "route_params": params } %} 
+0

是的,這是我想到的其他方式。我在這裏不喜歡的是在樹枝模板中定義數據結構或變量,這是我一直試圖避免的。 – ak2 2014-12-05 18:04:25