3

设置 Symfony2.2 后,我的登录表单中有以下代码:

<input type="hidden" name="_target_path" value="{{path('rok_admin_default_index')}}"/>

在哪里rok_admin_default_index指向“/”,所以它基本上是应用程序的主页。在我使用的开发过程中app_dev.php(我显然是这样),但是在开发环境中成功登录后 Symfony 将我重定向到domain.com/app_dev.php/app_dev.php/而不是domain.com/app_dev.php/

我的security.yml:

jms_security_extra:
secure_all_services: false
expressions: true

security:
    encoders:
        ROK\AdminBundle\Entity\User: sha512

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

providers:
    main:
        entity: { class: ROK\AdminBundle\Entity\User, property: email }
    in_memory:
        memory:
            users:
                user:  { password: userpass, roles: [ 'ROLE_USER' ] }
                mod: {password: modpass, roles: ['ROLE_MOD']}
                admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }

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: ~
        #anonymous: ~
        #http_basic:
        #    realm: "Secured Demo Area"

access_control:
    - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
    - { path: ^/admin, roles: ROLE_ADMIN}
4

1 回答 1

2

symfony2 文档说

value 属性可以是相对路径、绝对 URL 或路由名称。

所以我们可以尝试第二种和第三种选择

使用绝对路径

<input type="hidden" name="_target_path" value="{{url('rok_admin_default_index')}}"/>

或使用路线名称

<input type="hidden" name="_target_path" value="rok_admin_default_index"/>
于 2013-03-16T06:30:26.653 回答