3

Symfony2.2 をセットアップした後、ログイン フォームに次のコードが表示されます。

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

whererok_admin_default_indexは「/」を指しているので、基本的にはアプリケーションのホームページです。私が使用している開発中app_dev.php(明らかに)、開発環境でのログインに成功した後、Symfonyはdomain.com/app_dev.php/の代わりにdomain.com/app_dev.php/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、またはルート名にすることができます。

したがって、2 番目と 3 番目のオプションを試すことができます

絶対パスを使用

<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 に答える