如何将路径和其他路径参数传递给部分树枝模板

时间:2014-12-04 10:56:24

标签: symfony templates routes twig parameter-passing

我想使用一个部分树枝模板,在不同页面上创建品牌列表。问题是,在不同的情况下,我们想要链接到不同的路线。有些路线有一个额外的参数(可能不同),有些则没有。

因此,部分模板可能如下所示:

<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 %}

但这不是很好。我们经常看到类似的问题,我们想要一个干净的界面接口,他们不应该知道使用它们的上下文。但是,诸如使用附加参数更改链接这样的简单任务会使事情变得更加困难。

您对更好的解决方案有什么想法吗?

1 个答案:

答案 0 :(得分: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 } %}