私のアプリケーションのログイン画面でロケール切り替えが動作するようにしようとしています。そのためには、ログインページにsite.com/(デフォルトロケール)とsite.com/en(私がサポートしている2番目のロケール)を指すリンクがあります。私がログインしたらすぐ、切り替えは魅力的に機能します。しかし、まだ認証されていなければ、ログインは常にデフォルトのロケールに戻ります。私が理解していたのは、FOSUserBundleの名前付きルートを使用すると、自動的にロケールを処理できるはずですが、動作させることはできません。FOSUserBundleのログイン時のロケールスイッチ
マイアプリ/設定/ security.ymlファイル
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
login_path: fos_user_security_login
check_path: fos_user_security_check
logout: true
anonymous: true
access_control:
- { path: ^/_wdt, roles: IS_AUTHENTICATED_ANONYMOUSLY } # allow wdt for debugging
- { path: ^/_profiler/, role: IS_AUTHENTICATED_ANONYMOUSLY } # allow profiler for debugging
- { path: ^/bundles/, role: IS_AUTHENTICATED_ANONYMOUSLY } # allow assets to be loaded anonymously
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, role: ROLE_ADMIN }
- { path: ^/, role: ROLE_USER }
マイアプリ/設定/のrouting.yml
# FOS User bundle
fos_user_security:
resource: "@FOSUserBundle/Resources/config/routing/security.xml"
fos_user_profile:
resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
prefix: /profile
#fos_user_register:
# resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
# prefix: /register
fos_user_resetting:
resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
prefix: /resetting
fos_user_change_password:
resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
prefix: /profile
私はのカップルのためにこれで立ち往生してきたように感謝任意のポインタ今のところ
おかげで、私は来週、このアプローチをしようとします。 –
この設定を使用して多言語サイトを設定しました。私のログインページはすべての言語で利用可能です。ログイン後にロケールなしでフロントページにリダイレクトされます。何か案は? – ferdynator