在symfony 2.1中登录失败后不重定向到登录页面

在symfony 2.1中登录失败后不重定向到登录页面,symfony,symfony-2.1,Symfony,Symfony 2.1,登录失败后,应用程序不会重定向到登录页面。以下是我的security.yml配置: security: encoders: Acme\SecurityBundle\Entity\Users: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER providers: main: entity: { class: Acme\SecurityBundle\Entity\Users} firewalls:

登录失败后,应用程序不会重定向到登录页面。以下是我的security.yml配置:

security:
encoders:
    Acme\SecurityBundle\Entity\Users: sha512

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER

providers:
    main:
        entity: { class: Acme\SecurityBundle\Entity\Users}

firewalls:
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern:  ^/login$
        security: false

    secured_area:
        pattern:    ^/admin/
        form_login:
            check_path: /login_check
            login_path: /login
        logout:
            path:   /logout
            target: /home

access_control:
    - { path: ^/admin, roles: ROLE_ADMIN }
这是我的控制器:

class LoginController extends Controller {

/**
 * @Route("/login",name="login")
 */
public function loginAction() {
    //displays login form and renders the login.html.twig
}

/**
 * @Route("/login_check", name="login_check")
 */
public function loginCheckAction() {
    // The security layer will intercept this request
}
登录失败后,我得到的错误为:

  The controller must return a response (null given). Did you forget to add a return statement somewhere in your controller?
  500 Internal Server Error - LogicException 
我尝试了symfony附带的演示中的登录部分。我发现了同样的结果。
登录失败后,为了重定向到登录表单,我应该做什么修改?

您不需要为登录和注销操作创建控制器类。您只需要在
routing.yml
中指定这些路由,类似于:

login_path:
  pattern: /login
login_check_path:
  pattern: /admin/login_check
logout_path:
  pattern: /admin/logout
这些路由由安全组件自动处理

在防火墙配置中,您的
检查路径应定义为
/admin/login\u check
。注销路径应为
/admin/logout