Symfony在会话中存储url参数

时间:2016-03-22 13:46:58

标签: symfony session url get parameter-passing

按如下方式访问symfony项目中的消息页面。

  function messageNavigate(hotelid) {
             window.open('message/'+senderid+'','_blank')
  }

这里是检查用户是否登录。如果没有,用户重定向到登录页面。我的问题是如何在登录之后使用先前选择的itemid重定向他。

的routing.yml

message:
    path:     /message/{itemid}
    defaults: { _controller: TestBundle:Message:message }   

login:
    path:     /login
    defaults: { _controller: TestBundle:Security:login}  

seciurity.yml

firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false  
    main:
        anonymous: ~
        pattern:    ^/
        form_login:
            login_path: /login
            check_path: /login
            default_target_path: /message/{itemid}
        provider: our_db_provider
        logout:
            path:   logout
            target: /login

1 个答案:

答案 0 :(得分:2)

不是检查用户登录信息并手动重定向到登录页面,而是在消息控制器中执行以下操作:

$this->denyAccessUnlessGranted('ROLE_USER');

如果用户未登录,则会重定向到登录页面。用户提交登录表单后,还会重定向回原始路由。

或者,您可以在会话中设置此属性:

_security.main.target_path

到您希望用户在登录后重定向的URI。