2012-09-08 77 views
0

试图从Symfony 2.0迁移到2.1时,我发现了一些有趣的问题。Symfony 2.1 - 获取会话ID

我无法获得本机会话ID,即使在普通的,刚下载的Symfony 2.1副本。

/** 
* @Route("/sess") 
*/ 
public function sessionAction() 
{ 
    $session = $this->getRequest()->getSession(); 
    return new Response($session->getId()); 
} 

这里有什么变化吗?

+1

显然,当我在返回Response()之前放置'$ session-> start();时,我得到会话ID。这对我来说有点奇怪 - 在2.0版本中,会话自动启动(我认为)。 – acid

+0

此外,如果我删除'start()'方法并使用'$ session-> set()',它可以正常工作。问题是 - 我不想设置任何会话变量,只是获取当前的session_id(很可能不调用'start()'方法。 – acid

回答

5

看看this document(下应用程序/配置/ config.yml部分)

在Symfony的2.1会话总是开始点播。所以我会说你看到的是正常的行为。在获得会话ID之前,您需要明确地启动会话。我没有检查,但也许设置第一个变量也开始会话,这是因为它调用set()后,它工作。

+0

您的链接已断开 – FreeLightman