找不到 Symfony2 突然登录路径

Posted

技术标签:

【中文标题】找不到 Symfony2 突然登录路径【英文标题】:Symfony2 sudenly login route not found 【发布时间】:2014-11-29 06:56:55 【问题描述】:

今天早上,我在控制器上编写了一些新功能并且运行良好,但 10 分钟后突然尝试访问 Symfony 告诉我的方法之一:“找不到“GET /login”的路由,即使我尝试访问 app.php 也会对我说同样的异常。

在这个项目中,我通过 @Route 和 routing.yml 文件使用路由

下面我将展示我的配置

路由的文件

app/config/routing.yml

frab: 资源:“@FrabApiBundle/Resources/config/routing.yml”

frab_routing: 资源:“@FrabApiBundle/控制器” 类型:注解 前缀:/

fos_user_security: 资源:“@FOSUserBundle/Resources/config/routing/security.xml” 前缀:管理员 fos_user_profile: 资源:“@FOSUserBundle/Resources/config/routing/profile.xml” 前缀:/profile

fos_user_register: 资源:“@FOSUserBundle/Resources/config/routing/registration.xml” 前缀:/注册

fos_user_resetting: 资源:“@FOSUserBundle/Resources/config/routing/resetting.xml” 前缀:/resetting

fos_user_change_password: 资源:“@FOSUserBundle/Resources/config/routing/change_password.xml” 前缀:/profile

安全文件

app/config/security.yml

安全性: 编码器: FOS\UserBundle\Model\UserInterface: sha512

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

providers:
    fos_userbundle:
      id: fos_user.user_provider.username
      id: fos_user.user_provider.username_email

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

    dashboard:
        pattern:  ^/
        security: true
        form_login:
            provider: fos_userbundle
            check_path: /admin/login_check
            login_path: /login
            default_target_path: /ds
            csrf_provider: form.csrf_provider
        logout:
            path: /ds/logout
            target: /ds
        anonymous: ~

access_control:
    -  path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http 
    -  path: ^/ds, roles: ROLE_SUPER_ADMIN, requires_channel: http 
    -  path: ^/ds/users, roles: ROLE_SUPER_ADMIN, requires_channel: http 
    -  path: ^/ds/groups, roles: ROLE_SUPER_ADMIN, requires_channel: http 
    -  path: ^/ds/photos, roles: ROLE_SUPER_ADMIN, requires_channel: http 
    -  path: ^/ds/mail, roles: ROLE_SUPER_ADMIN, requires_channel: http 
    -  path: ^/ds/sendmail, roles: ROLE_SUPER_ADMIN, requires_channel: http 
    -  path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http 
    -  path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: http 

我能做什么?

【问题讨论】:

【参考方案1】:

您已将 admin 前缀添加到 @FOSUserBundle/Resources/config/routing/security.xml 资源,因此您的登录路径 (fos_user_security_login) 现在将位于 /admin/login

【讨论】:

在项目上无事可做将近两个小时后(我出去吃午饭),我试图访问 app.dev 和..surprise!刚开始工作。是的,我知道我添加了管理员并且工作正常,但这很奇怪,因为即使尝试访问 app.php Symphony 也会将我重定向到 app.php/login 并告诉我那个奇怪的异常。不管怎样,谢谢! :)

以上是关于找不到 Symfony2 突然登录路径的主要内容,如果未能解决你的问题,请参考以下文章

找不到 Symfony2 组件类

Symfony2:学说“找不到驱动程序”

Twig 和 Symfony2 - 找不到实体

Symfony2 - 在链配置的命名空间中找不到类“X”

Symfony2:找不到“GET /lucky/number”的路由

linux 找不到文件