Symfony2使用不同的语言环境刷新同一页面

时间:2015-07-09 12:19:46

标签: php jquery symfony

因此,在顶部导航栏中,用户可以选择一种语言。有用。这是代码: routing.yml中

homepage:
  path: /{_locale}
  defaults: { _controller: MpShopBundle:Homepage:index, "_locale": "es"}
  requirements:
         _locale: es|en

树枝:

<li><a href="{{ path('homepage', {'_locale':'en'}) }}">EN</a></li>
<li><a href="{{ path('homepage', {'_locale':'es'}) }}">ES</a></li>

现在出现问题。假设用户将一些产品添加到购物车并访问购物车页面www.domain.com/cart/shopping-cart。如果他按下其中一个链接,他将被重定向到主索引页面并更改其语言。

如何更改我的代码,以便当用户选择一种语言时,他不会被重定向到新页面,但同一页面会刷新新的语言环境。

例如:

当前页面:www.domain.com/cart/shopping-cart

语言选择后的

www.domain.com/cart/shopping-cart/en

而不是:www.domain.com/en

我的所有网页都在扩展导航栏。所以我需要以某种方式获取当前的URL并将/ en添加到它。

我得到这样的网址:

{% set currentPath = path(app.request.attributes.get('_route'),
                     app.request.attributes.get('_route_params')) %}

但是如何在树枝中添加/ en部分呢?

1 个答案:

答案 0 :(得分:1)

我认为此代码块可以回答您的问题:

<a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">English</a>

取自this StackOverflow question