Symfony2:路线“;登录“检查”;不存在
我对Symfony还很陌生,我正试图用数据库中的用户创建一个登录表单 到目前为止,我知道我必须将我的登录检查放在防火墙后面,而不是为其创建控制器,但我仍然收到以下错误:Symfony2:路线“;登录“检查”;不存在,symfony,login,routing,Symfony,Login,Routing,我对Symfony还很陌生,我正试图用数据库中的用户创建一个登录表单 到目前为止,我知道我必须将我的登录检查放在防火墙后面,而不是为其创建控制器,但我仍然收到以下错误: 在第11行的EventBundle:Security:login.html.twig中呈现模板(“路由”login\u check“不存在”)时引发异常。 My security.yml: jms_security_extra: secure_all_services: false expressions: true secu
在第11行的EventBundle:Security:login.html.twig中呈现模板(“路由”login\u check“不存在”)时引发异常。
My security.yml:
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
SocialGeo\EventBundle\Entity\User:
algorithm: sha512
encode-as-base64: true
iterations: 10
role_hierarchy:
ROLE_USER: ROLE_USER
ROLE_DISTRICTWORKER: ROLE_USER
ROLE_CITYWORKER: ROLE_DISTRICTWORKER
ROLE_ADMIN: ROLE_CITYWORKER
ROLE_SUPERADMIN: ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH
providers:
administrators:
entity: { class: SocialGeo\EventBundle\Entity\User, property: username }
firewalls:
main:
pattern: /.*
form_login:
login_path: /login
check_path: /login_check
remember_me: true
logout:
path: /logout
target: /
security: true
anonymous: true
Routing.yml:
EventBundle_login:
pattern: /login
defaults: { _controller: EventBundle:Security:login }
requirements:
_method: GET|POST
EventBundle_login_check:
pattern: /login_check
EventBundle_logout:
pattern: /logout
我的小枝模板:
{% extends 'EventBundle::layout.html.twig' %}
{% block title %}Login{% endblock %}
{% block body %}
{% if error %}
<div>{{ error.message }}</div>
{% endif %}
<form action="{{ path('login_check') }}" method="post">
<label for="username">Username</label>
<input id="username" type="text" name="_username" value="{{ last_username }}" />
<label for="password">Password</label>
<input id="password" type="password" name="_password" />
<input type="submit" name="login" />
</form>
{% endblock %}
{%extends'EventBundle::layout.html.twig%}
{%block title%}登录名{%endblock%}
{%block body%}
{%if错误%}
{{error.message}}
{%endif%}
用户名
密码
{%endblock%}
有人知道我为什么会出现这个错误吗?我想我刚刚修复了它 当我从routing.yml中删除“EventBundle”前缀时,它起作用了 像这样:
login:
pattern: /login
defaults: { _controller: EventBundle:Security:login }
requirements:
_method: GET|POST
login_check:
pattern: /login_check
logout:
pattern: /logout
这很古老,但每个人都知道这里发生了什么,改变了路线名称,就像这个人所做的那样。但是,原始路由名称也会起作用 与此相反:
<form action="{{ path('login_check') }}" method="post">
应该是这样的:
<form action="{{ path('EventBundle_login_check') }}" method="post">
细枝路径函数需要路由名称来生成正确的URL