Php Symfony2:登录后重定向到上一页

Php Symfony2:登录后重定向到上一页,php,session,symfony,authentication,login,Php,Session,Symfony,Authentication,Login,我想这样做: 用户尝试访问私人页面(他需要登录)。当他试图访问时,他无法访问,因为以前他必须写他的凭证。他写下密码并登录系统。我希望用户将自动重定向到他试图访问的页面 我放了保安 use_referer: true 在我的第一个控制器中,我将: $this->getRequest()->headers->get('referer'); 我总是得到登录名的地址(…/login.php)。与此相反,我需要获取例如(…/downloads/test.txt) 我还尝试了: $re

我想这样做:

用户尝试访问私人页面(他需要登录)。当他试图访问时,他无法访问,因为以前他必须写他的凭证。他写下密码并登录系统。我希望用户将自动重定向到他试图访问的页面

我放了保安

use_referer: true
在我的第一个控制器中,我将:

$this->getRequest()->headers->get('referer');
我总是得到登录名的地址(…/login.php)。与此相反,我需要获取例如(…/downloads/test.txt)

我还尝试了:

$request->getSession()->get('_security.account.target_path');
但我得到空值

我该怎么做

提前谢谢

---使用security.yml编辑---


默认情况下,Symfony2将执行此操作。如果用户直接进入登录页面(例如通过书签),则只能指定要转到的url


查看如何使用此行为设置“防火墙”:

谢谢,但由于我的此行为不起作用,我在原始帖子中添加了防火墙配置。谢谢。check_path和login_path需要路由,在routes.yml(或其他地方)中定义,而不是实际文件。好的,我将check_path和login_path与routing.yml中定义的路由器放在一起(check_path:login_check和login_path:login)但是系统没有将我重定向到上一页。你可以添加
security.yml
中的
访问控制部分吗?是的,我已经添加到了我原来的帖子中。谢谢。如果您希望用户在成功验证后重定向到防火墙后面的url,您可能根本不需要
use\u referer
(正如@colburton所指出的)。尝试删除它。
$request->getSession()->get(“\u security.account.target\u path”)
将返回
null
,因为您的防火墙名称为“前端”。应该是:
$request->getSession()->get(“\u security.fronted.target\u path”)谢谢,但我删除了use\u referer的行为,它是一样的。使用$request->getSession()->get(“'u security.fronted.target'u path”);我也总是空的(
firewalls:
    frontend:
        pattern:     ^/*
        anonymous:   ~
        simple-form:  
            authenticator: my_authenticator
            check_path: login_check
            login_path: login
            use_referer: true
            failure_path: login_error
        logout:
            path:    logout
            target:  /
            success_handler: my_authenticator
        remember_me:
            key:       mykey
            lifetime:  31536000

        switch_user: { role: ROLE_ADMIN, parameter: _login_as }

access_control:
    - { path: ^/web/login.php, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
    - { path: ^/web/login_error.php, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
    - { path: ^/*, roles: [ROLE_USUARIO, ROLE_RESELLER, ROLE_ADMIN], requires_channel: https }