登录时找不到“GET /”Symfony的路线

时间:2014-02-23 18:58:27

标签: php symfony

我一直在尝试按照本教程http://donna-oberes.blogspot.co.uk/2013/09/user-login-and-logout-step-by-step-with.html进行操作。当我尝试使用不正确的用户名登录时密码代码工作似乎工作...但当我输入正确的密码时,我得到了这个错误。

  

找不到“GET /”的路线(来自“/app/path/web/app_dev.php/login”)

目前我的文件结构如下所示。

routing_dev.yml

_wdt:
    resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
    prefix:   /_wdt

_profiler:
    resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
    prefix:   /_profiler

_configurator:
    resource: "@SensioDistributionBundle/Resources/config/routing/webconfigurator.xml"
    prefix:   /_configurator

_main:
    resource: routing.yml



login:
    pattern:   /login
    defaults:  { _controller: SimpleProfileBundle:Security:login }

login_check:
    pattern:   /login_check

test_security:
    pattern: /secure_area
    defaults: {_controller: SimpleProfileBundle:Security:dumpString }

security.yml

security:
encoders:
    Symfony\Component\Security\Core\User\User: plaintext
    Simple\ProfileBundle\Entity\User:
        algorithm:        sha1
        encode_as_base64: false
        iterations:       1

role_hierarchy:
    ROLE_ADMIN:       ROLE_USER
    ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]

providers:
    main:
        entity:
            class: Simple\ProfileBundle\Entity\User
            property: username

firewalls:

    secured_area:
        pattern:    ^/
        anonymous: ~
        form_login:
            login_path:  login
            check_path:  login_check
    dev:
        pattern:  ^/(_(profiler|wdt)|css|images|js)/
        security: false

    login:
        pattern:  ^/demo/secured/login$
        security: false

access_control:
      - { path: ^/secure_area, roles: ROLE_ADMIN }

有什么想法吗? 感谢

3 个答案:

答案 0 :(得分:4)

我认为错误消息描述了此处的问题。您没有为/定义的路线。当您尝试使用错误的凭据登录时,您将被重定向到登录名( 一条路线)。但是,如果您成功,您将被重定向到/。您还没有为根定义路由。

您必须添加以下路线:

index:
    pattern:   /
    defaults:  { _controller: YourBundle:IndexController:index }

答案 1 :(得分:3)

错误是由成功登录后重定向和缺少默认控制器引起的。请查看安全组件documentation

正如文档所述,您有以下选项可在成功登录后配置目标:

always_use_default_target_path: false
default_target_path:            /
target_path_parameter:          _target_path
use_referer:                    false

答案 2 :(得分:1)

_welcome添加到app/config/routing_dev.yml

_welcome:
    pattern:  /
    defaults: { _controller: AppBundle:Default:index }