Symfony 2.3不同的地点在不同的路径上


Symfony 2.3 different locales on different paths

我需要在不同的路径上实现不同的区域设置。现在存在路径/下的网页和路径/admin下的
管理员页面。

管理员用户网页上拥有EN或FR语言环境(取决于他选择的内容),并且在管理员页面中只有EN。URL路径中不能包含区域设置。

问题是,当登录的管理员使用FR检查网页并进入EN上的管理页面时,当管理员返回时,主页必须处于FR上。

我正在考虑在会话中为webadmin页面存储单独的区域设置,并根据路径读取它们。

没有硬编码或更好的方法有什么建议吗?

您可以添加对路由的要求,以定义可能的区域设置列表。

请参阅路由的"添加要求"部分

# app/config/routing.yml
homepage:
    path:      /{_locale}
    defaults:  { _controller: AppBundle:Main:homepage, _locale: en }
    requirements:
        _locale:  en|fr

我的方法是创建一个事件侦听器,它根据访问的路径强制使用所需的区域设置。路径只需使用regexp进行解析。