[英]Symfony2 refreshing the same page with a different locale
因此,用戶可以在頂部導航欄中選擇一種語言。 有用。 這是代碼: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
我所有的頁面都在擴展導航欄。 因此,我需要以某種方式獲取當前網址並將/ en添加到其中。
我得到這樣的網址:
{% set currentPath = path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params')) %}
但是,如何在樹枝中添加/ en部分?
我認為此代碼塊可以回答您的問題:
<a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'})) }}">English</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.