我需要在不同的路径上实现不同的区域设置。现在存在路径/
下的网页和路径/admin
下的
管理员页面。
管理员用户在网页上拥有EN或FR语言环境(取决于他选择的内容),并且在管理员页面中只有EN。URL路径中不能包含区域设置。
问题是,当登录的管理员使用FR检查网页并进入EN上的管理页面时,当管理员返回时,主页必须处于FR上。
我正在考虑在会话中为web和admin页面存储单独的区域设置,并根据路径读取它们。
没有硬编码或更好的方法有什么建议吗?
您可以添加对路由的要求,以定义可能的区域设置列表。
请参阅路由的"添加要求"部分
# app/config/routing.yml homepage: path: /{_locale} defaults: { _controller: AppBundle:Main:homepage, _locale: en } requirements: _locale: en|fr
我的方法是创建一个事件侦听器,它根据访问的路径强制使用所需的区域设置。路径只需使用regexp进行解析。