我正在设置允许以下路由的路由:
/client_a/dashboard/
/client_b/dashboard/
我在我的中使用了一个app/config/routing.yml
看起来像这样的前缀:
AcmeMainBundle:
resource: "@AcmeMainBundle/Resources/config/routing.yml"
prefix: /{client}
我遇到的问题是登录路由似乎有前缀问题。这是我/Resources/config/routing.yml
正在导入主路由文件中的条目:
acme_login:
pattern: /login/
defaults: {_controller: AcmeMainBundle:Main:login }
acme_login_check:
pattern: /login_check
# defaults: This is not required since the Firewall will handle this
acme_logout:
pattern: /logout/
# defaults: This is not required since the Firewall will handle this
登录页面显示正常,但在用户提交登录页面后,Symfony 会抛出错误说明:
Unable to find the controller for path "/client_a/login_check". Maybe you forgot to add the matching route in your routing configuration?
在我看来,Symfony2 在内部安全路由和在 routing.yml 中使用前缀时遇到了困难。
有什么办法可以克服这个问题?
注意:解决此问题的一种方法是更改我的 routing.yml 文件中的所有路由以包含 {client} 参数。唯一的问题是,这是一个非常广泛的应用程序,包含大量路线。使用前缀可以创造奇迹,除了登录期间的安全处理。
谢谢,
JB