无法找到路径&QUOT控制器; / login_check" - Symfony2的 [英] Unable to find the controller for path "/login_check" - symfony2
问题描述
我知道这是一个常见的问题。而关于这一主题的几个问题已张贴。 我已经尝试了所有的解决方案在这些问题建议,但没有奏效。
I know this is a common problem. And several questions on this topic have been posted. I have tried all those solutions recommended in those questions, but none worked.
我发现,如果我把我的 form_login
A 防火墙
后面出现此问题。但我没有在防火墙的任何额外的层上,在文档中描述的路径应该是简单的。
I found that this problem occurs if I put my form_login
behind a firewall
. But I'm not having any extra layer in firewall so the path should be simple as described in documentation.
我的 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 }
我的的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 /
但它显示出在提交登录表单之后pressing的错误。
So I'm performing login check while accessing app_dev.php/
But it's showing that error after pressing submit in login form.
无法找到路径控制器/ login_check。可能是你
忘了添加在你的路由配置匹配的路由? 404
未找到 - NotFoundHttpException
Unable to find the controller for path "/login_check". Maybe you forgot to add the matching route in your routing configuration? 404 Not Found - NotFoundHttpException
我试过
login_path: /login
check_path: /login_check
没有工作。什么我失踪?请帮助.....
Didn't work. What I'm missing ?? Please help.....
推荐答案
路线 login_check
不是在防火墙后面,因为 login_check
路由模式的登录匹配
防火墙有没有安全性。
The route login_check
is not behind the firewall because the login_check
route pattern matches the login
firewall which has no security.
login:
pattern: ^/login # This matches /login_check
security: false
解决方案1:更改为
Solution 1: Change this to
login:
pattern: ^/login$
security: false
解决方案2:删除登录
防火墙完全并添加此规则 ACCESS_CONTROL
Solution 2: Remove the login
firewall altogether and add this rule to access_control
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
这篇关于无法找到路径&QUOT控制器; / login_check" - Symfony2的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!