Symfony2中的自动启动会话

时间:2013-07-13 06:42:57

标签: symfony

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

我有一个应用程序需要用户的会话ID在几个动作中,但是没有办法知道哪个会首先需要它,所以我无法按需启动它,我需要它在我请求它时。

2 个答案:

答案 0 :(得分: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
        ));
    }

}

答案 1 :(得分:1)

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

然而,这是取决于。设计会议按需开始。

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

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