【发布时间】:2016-05-08 09:34:06
【问题描述】:
我想做的是创建一个输出链接列表的语言切换器模板,如下所示:
<div class="language-switcher">
<ul>
{% for locale in allowed_locales %}
<li>
<a href="{{ path($get current route name here $, { '_locale': locale }) }}">
{{ locale|upper }}
</a>
</li>
{% endfor %}
</ul>
</div>
我遇到的主要问题是 - Twig 的内置 path 函数接受一个路由名称,在 Symfony 3 中似乎无法检索。
另一个问题是 - 路由可能有额外的参数,需要与 _locale 参数合并。从我在互联网上找到的代码(当然都是 symfony v2 的)中,使这项工作产生了非常丑陋的代码,绝对不属于模板。
我认为实现此目的的最佳方法是为此目的使用新的路由生成功能制作 Twig 扩展,但这似乎也可能有问题,因为 path() 函数位于另一个扩展中,我不知道如何从我自己的扩展程序访问(我也不太确定这是一个好主意)。
我怎么做这个东西?
编辑:我也不想在每个操作中将数据传递给模板,因为那根本不是 DRY。
【问题讨论】:
标签: php routing locale symfony