【问题标题】:How to pass route and additional route params to a partial twig template如何将路线和附加路线参数传递给部分树枝模板
【发布时间】:2015-02-02 05:26:41
【问题描述】:

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

所以部分模板可能如下所示:

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

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

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

【问题讨论】:

    标签: symfony templates routes twig parameter-passing


    【解决方案1】:

    您可以定义一个包含所有路由参数的数组并将其直接发送到您的部分模板中:

    {% set params = {'param1': 'value1', 'param2': 'value 2', 'param3': 'value 3' %}
    
    {% include 'partials/brand_list.html.twig' with { "brands" : brands, "route" : "brand", "route_params": params } %}
    

    【讨论】:

    • 是的,这是我想到的另一种方式。我不喜欢在 twig 模板中定义数据结构或变量,这是我一直尽量避免的。
    猜你喜欢
    • 2019-02-05
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多