![](/img/trans.png)
[英]Symfony2 : Unable to find the controller for path “/api/login_check”. The route is wrongly configured
[英]Unable to find the controller for path “/login_check” - symfony2
我知道这是一个常见的问题。 关于这个主题的几个问题已经发布。 我已经尝试过在这些问题中推荐的所有解决方案,但都没有效果。
我发现如果我将form_login
放在firewall
后面会出现此问题。 但我在防火墙中没有任何额外的层,所以路径应该很简单,如文档中所述。
我的security.yml
# app/config/security.yml
security:
encoders:
Joy\JoyBundle\Entity\User:
algorithm: sha512
encode_as_base64: true
iterations: 1
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
administrators:
entity: { class: JoyBundle:User, property: username }
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
login:
pattern: ^/login
security: false
secured_area:
pattern: ^/
anonymous: ~
form_login:
login_path: login
check_path: login_check
logout:
path: /logout
target: /login
access_control:
- { path: ^/signup, roles: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/, roles: ROLE_ADMIN }
我在app/config
routing.yml
# app/config/routing.yml
login:
path: /login
defaults: { _controller: JoyBundle:Security:login }
login_check:
path: /login_check
joy_hello:
resource: "@JoyBundle/Resources/config/routing.yml"
prefix: /
所以我在访问app_dev.php/
正在执行登录检查app_dev.php/
但是在登录表单中按提交后显示错误。
无法找到路径“/ login_check”的控制器。 也许您忘了在路由配置中添加匹配路由? 找不到404 - NotFoundHttpException
我试过了
login_path: /login
check_path: /login_check
没工作。 我错过了什么? 请帮忙.....
路由login_check
不在防火墙后面,因为login_check
路由模式与没有安全性的login
防火墙匹配。
login:
pattern: ^/login # This matches /login_check
security: false
解决方案1:将其更改为
login:
pattern: ^/login$
security: false
解决方案2:完全删除login
防火墙,并将此规则添加到access_control
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
在security.yml中尝试在secured_area
部分设置提供程序:
secured_area:
provider: administrators
pattern: ^/
anonymous: ~
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.