私はJMSI18nRoutingBundleと一緒にSymfony 3.3を使用しています。JMSI18nRoutingBundle経由のURLのsymfonyロケール
バンドルは、ユーザーロケールをルートの前に置きます。これは正常に動作します。ログインするかログアウトするまで、これらは動作しません。
私はいつも次のエラーを取得する:
Unable to find the controller for path "/en/admin/logout". The route is wrongly configured.
これは、ログイン/ログアウトカバーする私のsecurity.ymlファイルの一部です:などlogin_pathについては
security:
firewalls:
main:
anonymous: ~
pattern: ^.*/admin
form_login:
login_path: /{_locale}/admin/login
check_path: /{_locale}/admin/login
[...]
logout:
path: /{_locale}/admin/logout
target: /{_locale}/admin/login
access_control:
- { path: ^/admin/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin, roles: ROLE_ADMIN }
を、check_path、私はしました{_locale}、。*、スラッシュ(/)の代わりに試してみましたが、これらのどれも動作しませんでした。
管理者ログアウトが私のrouting.ymlで構成された:
admin-logout:
path: /admin/logout
これが適切に小枝にレンダリングされる、パスを使用して(「管理者ログアウト」)、私はそれでロケールでURLを取得しますそれをクリックすると、上記のエラーメッセージが再び表示されます。 ログインも動作しませんが、ログインページを表示することはできますが、ログイン後にページを更新するだけです。
ログイン/ログアウトを再度行う方法はありますか?
編集:私はそれを解決することができnifrする
おかげで、私はsecurity.ymlファイルでルート名ではなく、パスを使用していたはずです、これは私がなってしまったものです。
/EN /:あなたはそこに{から_locate}を入れない場合JMSI18nRoutingBundleはすでにあなたのようなルートで終わる、(ルートの前にロケールのプレースホルダを置くように私は、私のrouting.ymlで何も変更しませんでしたsecurity:
firewalls:
main:
anonymous: ~
pattern: admin
form_login:
login_path: admin-login
check_path: admin-login
[...]
logout:
path: admin-logout
target: admin-login
[...]
ja/admin /)
ありがとうございます!これは私が必要だったものです。 routing.ymlでは何も変更しませんでしたが、私のsecurity.ymlのルート名を使用しました。 – Didier