Symfony2:路线“;登录“检查”;不存在

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

我对Symfony还很陌生,我正试图用数据库中的用户创建一个登录表单

到目前为止,我知道我必须将我的登录检查放在防火墙后面,而不是为其创建控制器,但我仍然收到以下错误:

在第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