0

在第 156-157 页的 symfony2 书籍中,有一个很好的教程,介绍了如何使用表单制作自己的登录系统。

当我按照这些步骤进行操作时,我遇到了“未找到“POST /login_check”的路由”错误消息。

安全性.yml:

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

路由.yml:

login:
    pattern: /login
    defaults: { _controller: MySecurityBundle:Security:login }
login_check:
    pattern: /secured/login_check

谁能告诉我为什么我的不起作用而 sensioLabs 显然起作用?

我能看到的唯一区别是我删除了 Acme 包并创建了一个新的安全包,按照教程复制粘贴所有文件(我认为 ACME 是一个演示包,对于安全等功能不是必需的?)。

我没有为 login_check 路由设置默认路由,因为教程在第 156 页上说“您不需要为 /login_check URL 实现控制器,因为防火墙会自动捕获并处理提交到此 URL 的任何表单。”

4

1 回答 1

0

您不需要指定控制器,但您必须指定路由路径,在您的情况下是

pattern: /secured/login_check

但是您正在提交表单/login_check,编辑您的表单操作以/secure将其包含或从 routing.yml 中删除

于 2012-06-10T22:17:54.000 回答