默认语言环境在 Symfony 3.4 中未显示为 href 链接



我在本地运行Symfony 3.4,并在默认值和路由中添加了语言环境。给出如下:

app/config.yml

framework:
default_locale:  "en"

在我有Routes

homepage:
path:     /{_locale}
defaults: { _controller: AcmeBundle:Home:index, _locale: en }

在树枝上,我有:

{% set en_params = app.request.attributes.get('_route_params') | default([]) | merge(app.request.query) %}
{% set en_params = en_params | merge({'_locale': 'en'}) %}

<a href="{{ path('homepage', en_params ) }}" class="en"><span>English</span></a>

http://localhost/en当我将鼠标悬停在锚标记上或单击

但它覆盖了默认区域设置并显示http://localhost

提前感谢您为我提供正确的方法,如果我错了,请纠正我。

如果可选参数({_locale}参数(位于可选位置(即结尾(并且也是默认值,则可以(并且显然将(省略它。对于{_format}甚至.{_format}也是如此(附加点(

我想,只要它有效,你为什么在乎?

您可以通过显式定义要[a-z]{2}_locale要求(甚至更明确地de|en(来强制参数,但我不完全确定。