我设置了安全设置来保护根路径下的所有内容/
,除了查看隐私政策的公共页面外,/privacy
。一切正常。
# security.yml
access_control:
- { path: ^/privacy$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
现在我在隐私政策页面添加了一些不同的翻译,这样路由就从/privacy
to /{_locale}/privacy
。不幸的是我无法添加_locale
安全路径的参数如下:
access_control:
...
- { path: ^/{_locale}/privacy$, role: IS_AUTHENTICATED_ANONYMOUSLY }
那么我该如何修改我的security.yml
这样我就可以添加_locale
到路径并将其限制为预定义的语言,例如(en|fr|es|de)
?
现在(从 Symfony 4.1 或更高版本开始)您可以在一处定义语言环境并在应用程序中的任何地方使用它
in config/services.yaml
add
parameters:
myAppName.locales: en|fr|es|de
in config/routes.yaml
cms:
prefix: /{_locale}/
controller: App\Controller\DefaultController::index
requirements:
_locale: '%myAppName.locales%'
in config/packages/security.yaml
security:
## .... no changes here
access_control:
- { path: ^/(%myAppName.locales%)/cms, roles: ROLE_ADMIN }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)