Symfony 在不更改当前页面的情况下切换语言

Symfony 在不更改当前页面的情况下切换语言,symfony,Symfony,我在多语言Symfony2项目中使用twig作为模板。layout.html.twig中有一个语言切换器 我希望用户可以通过单击语言链接在不更改当前页面的情况下切换语言。我已经编写了以下代码,它只负责静态页面。由于语言链接只是将locale传递给路由,因此在涉及其他必需参数的情况下,它显然会抛出异常:route缺少一些必需参数 <ul id="lang"> <li><a href="{{ path(app.request.attributes.get('_r

我在多语言Symfony2项目中使用twig作为模板。layout.html.twig中有一个语言切换器

我希望用户可以通过单击语言链接在不更改当前页面的情况下切换语言。我已经编写了以下代码,它只负责静态页面。由于语言链接只是将
locale
传递给路由,因此在涉及其他必需参数的情况下,它显然会抛出异常:
route缺少一些必需参数

<ul id="lang">
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'az'}) }}">AZ</a></li>
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'en'}) }}">EN</a></li>
</ul>

您可以使用
获取路由参数。获取(“路由参数”)
并使用所需的区域设置获取它们:

<ul class="lang-menu">
  <li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'ca'})) }}">Català</a></li>
  <li><a href="{{  path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'}))}}">English</a></li>
</ul>

我知道我们不应该一见钟情地说这些,但是。。。我爱你!非常感谢,这使我的一天,这应该是刻在石头上,也给Symfony文件,还没有找到更好的解决方案,甚至Symfony 4.3。