Php 获取控制器内的当前默认\u目标\u路径

Php 获取控制器内的当前默认\u目标\u路径,php,symfony,Php,Symfony,我使用的是FOSUserBundle+FOSFacebookBundle,我试图在登录后使我的登录和注册页面不可接受。如果用户登录并正在访问其中一个页面,则应将其重定向到防火墙的默认\u目标\u路径中定义的页面 问题是,我不知道如何在控制器中获取默认的\u目标\u路径。我在用 $request->getSession()->get('_security.target_path'); 但它返回null 这是我的security.yml文件: jms_security_extra:

我使用的是FOSUserBundle+FOSFacebookBundle,我试图在登录后使我的登录和注册页面不可接受。如果用户登录并正在访问其中一个页面,则应将其重定向到防火墙的默认\u目标\u路径中定义的页面

问题是,我不知道如何在控制器中获取默认的\u目标\u路径。我在用

$request->getSession()->get('_security.target_path');
但它返回null

这是我的security.yml文件:

jms_security_extra:
    secure_all_services: false
    expressions: true

security:
    encoders:
        FOS\UserBundle\Model\UserInterface: sha512

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

    providers:
        chainprovider:
            chain:
                providers: [ fos_userbundle, fos_facebookbundle]
        fos_userbundle:
            id: fos_user.user_provider.username
        fos_facebookbundle:
            id: fos_facebookbundle

    firewalls:
        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_provider: form.csrf_provider
                default_target_path: /
            fos_facebook:
                app_url: "FB_APP_URL"
                server_url: "APP_URL"
                login_path: /login
                check_path: /login_fb_check
                default_target_path: /
                provider: fos_facebookbundle
            logout: true
            anonymous: true

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

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }
有什么想法吗

谢谢。

设置:

firewalls:
    main:
        pattern: ^/
        form_login:
            # ...
            default_target_path: %target_path%
parameters.yml中设置的目标路径

parameters:
    # ...
    target_path: /
    # ...
然后通过以下方式获得价值:

$this->container->getParameter('target_path');

您错过了get中的一个部分:

$request->getSession()->get('_security.main.target_path');

是的,这也是一个解决方案,但是关于如何获得实际的默认目标路径有什么想法吗?谢谢。
firewalls:main:pattern:^/form_login:#。。。默认\u目标\u路径:%target\u路径%always\u use\u default\u target\u路径:true
每次登录后,用户将重定向到默认\u实际\u路径。最后一行有一个拼写错误:taget\u路径应该是target\u路径,我希望可以编辑它,但StackOverflow只允许编辑6个字符或更多