2

Symfony 2.1 似乎不会自动启动会话。有没有办法让我自动启动它们?

我有一个应用程序在多个操作中需要用户的会话 ID,但是无法知道哪个首先需要它,所以我不能按需启动它,我需要它在我请求时就在那里。

4

2 回答 2

1

您可以告诉框架会话配置(在您的 config.xml 中定义)自动启动会话。

但是,这是不赞成的。设计的会话是按需启动的。

<framework:config>
    <framework:session auto-start="true"/>
</framework:config>

我的问题是你为什么要初始化一个会话,除非你正在使用它?

于 2013-07-14T02:23:25.923 回答
1

据我了解,您需要在已经开始的会话中的某个地方使用用户的会话 ID,如果还没有开始会话,您想要这样做

在这种情况下尝试:

use Symfony\Component\HttpFoundation\Session\Session; // use sessions

class yourController extends Controller
{
    public function yourAction()
    { 

        $session = $this->getRequest()->getSession(); // Get started session
        if(!$session instanceof Session)
            $session = new Session(); // if there is no session, start it

        $value = $session->getId(); // get session id


        return $this->render('YourSampleBundle:your:your.html.twig',array(
                'session_id' => $value
        ));
    }

}
于 2013-07-13T07:26:22.183 回答