我设置了安全性设置来保护根目录路径下的所有内容/
,例如用于查看隐私策略的公共页面/privacy
。一切正常。
# security.yml
access_control:
- { path: ^/privacy$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, role: ROLE_USER }
现在,我在隐私权政策页面上添加了一些不同的翻译,以使路由从更改/privacy
为/{_locale}/privacy
。不幸的是,我无法将_locale
参数添加到安全路径中,如下所示:
access_control:
...
- { path: ^/{_locale}/privacy$, role: IS_AUTHENTICATED_ANONYMOUSLY }
那么,如何修改我的名称,security.yml
以便可以将I添加_locale
到路径并将其限制为预定义的语言,例如(en|fr|es|de)
?
如今(自Symfony 4.1或更高版本开始),您可以在一个地方定义语言环境,并在应用程序中的任何地方使用它。
在config/services.yaml
添加
parameters:
myAppName.locales: en|fr|es|de
在 config/routes.yaml
cms:
prefix: /{_locale}/
controller: App\Controller\DefaultController::index
requirements:
_locale: '%myAppName.locales%'
在 config/packages/security.yaml
security:
## .... no changes here
access_control:
- { path: ^/(%myAppName.locales%)/cms, roles: ROLE_ADMIN }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句